powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP + Oracle. Курсорадаптер
3 сообщений из 3, страница 1 из 1
VFP + Oracle. Курсорадаптер
    #36143997
Rounder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VFP 9
Oracle 10
Вопрос:
Работаю с Ораклом из фокса через курсорадаптеры, все прекрасно - делаю UPDATE курсорадаптера - все моментом долетает до базы в оракле, делаю рефреш - вижу все и в своем гриде. Однако такое не проходит с добавлением записей :(
Т.е. когда исполняю инструкцию INSERT до тех пор пока не закрою клиентскую часть не вижу новой записи на сервере. Соотв. только после закрытия/открытия клиента вижу ее в гриде.
Как это победить?
Спасибо.
...
Рейтинг: 0 / 0
VFP + Oracle. Курсорадаптер
    #36144567
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По умолчанию, курсор, создаваемый CursorAdapter открывается в 3 режиме буферизации (оптимистическая буферизация строк). При желании, его можно переключить в 5 режим буферизации (оптимистическая буферизация таблиц). Отключить для него режим буферизации или установить пессимистическую буферизацию невозможно.

Как следствие, модификации, выполняемые в курсоре, созданном CursorAdapter будут выполняются не в самом курсоре, а в его буфере. Сброс изменений на сервер выполняется только тогда, когда модификации из буфера курсора попадут в сам курсор.

Сброс буфера выполняется:

Для строковой буферизации (2 или 3)

- При переходе (попытке) на другую запись
- При закрытии
- По команде TableUpdate()

Для табличной буферизации (4 или 5)

- Только по команде TableUpdate() и никак иначе.

Скорее всего, курсор у Вас находится в строковом режиме буферизации (3). Как следствие, сброс буфера и передача изменений на сервер происходит при перемещении указателя записи на другую запись. Вероятно, после команды INSERT вы этого не делаете и сброс буфера откладывается до закрытия курсора, что происходит в момент закрытия приложения.

Более правильная стратегия заключается в ручном управлении моментом сброса буфера. Т.е. переводом курсора в 5 режим буферизации и явной подачей команды TableUpdate() после команд модификации курсора.
...
Рейтинг: 0 / 0
VFP + Oracle. Курсорадаптер
    #36144589
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если модификации в таблице-источнике Grid выполняются программно, то эти модификации будут отображены в самом Grid только в момент получения им фокуса. Программно, это делается командой Grid.SetFocus(). Выполнение Grid.Refresh() может и не отобразить внесенных изменений в Grid.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP + Oracle. Курсорадаптер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]