:: Visual Foxpro, Foxpro for DOS
Вставка в буфферизированный курсор
Sandwich
Автор

Сообщений: 137
Дата регистрации: 08.02.2014
Здравствуйте
БД - MySQL
Получаю через курсорадаптер курсор одной из таблиц. Делаю вставку 1000 записей в этот курсор. Далее tableupdate. Для того чтобы в курсоре "появились" id этих новых строк нужно сделать cad.CursorRefresh?
Или я не знаю другого более рационального способа?
Ratings: 0 negative/0 positive
Re: Вставка в буфферизированный курсор
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Помимо .CursorRefresh (его ещё и через функцию REQUERY() можно вызвать) есть:
- "Позаписный" .RecordRefresh (он же по сути через функцию REFRESH() вызывается, хотя есть нюансы) - но его надо явно вызывать указывая какие записи "обновить с сервера" - и скорее всего для вновь добавленных записей он не сработает (т.к. попытается их по id и найти, а id как раз и нет на стороне фокса).
- автоматический "Refresh при вставке" управляемый группой свойств .InsertCmdRefresh* В принципе тут уже можно указать альтернативный ключ и по нему вынуть обратно id (предполагая что в таблице ЕСТЬ иной уникальный ключ кроме id, или же на сервере поддерживается функция/псевдоколонка возвращающая "только что присвоенный id").
- Использование ХП или батча с прописыванием оного в InsertCmd, которые вернут свежеприсвоенный id в фокс (как output параметр) - в это самое поле ID.

В общем большинство подобных альтернатив на порядок более сложны и неудобны чем простое как грабли обновление всего курсора. Особенно учитывая что в реальности далеко не только поле id может заполняться/изменяться на сервере, и соответственно его нужно будет вынимать обратно. А если помимо "рабочих" полей одной таблицы ты в этом адаптере ещё и "названия из справочника" подтягиваешь (что есть хорошо, правильно и удобно для редактирования данных в фоксе), то и их надо "извлекать" тем или иным образом - кстати не только для новых, но и для изменённых записей.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Вставка в буфферизированный курсор
Sandwich
Автор

Сообщений: 137
Дата регистрации: 08.02.2014
Спасибо
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 26 (Гостей: 26)

© 2000-2024 Fox Club 
Яндекс.Метрика