Вставка в буфферизированный курсор | |
---|---|
Sandwich Автор Сообщений: 137 Дата регистрации: 08.02.2014 |
Здравствуйте
БД - MySQL Получаю через курсорадаптер курсор одной из таблиц. Делаю вставку 1000 записей в этот курсор. Далее tableupdate. Для того чтобы в курсоре "появились" id этих новых строк нужно сделать cad.CursorRefresh? Или я не знаю другого более рационального способа? |
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 |
Re: Вставка в буфферизированный курсор | |
---|---|
Sandwich Автор Сообщений: 137 Дата регистрации: 08.02.2014 |
Спасибо
|
© 2000-2024 Fox Club  |