Краткое описание :
Переделать кеш записей в драйвере оракла, чтобы сделать возможным построчное удаление из кешаОписание :
OracleЧто измененно :
Кеш драйвера СУБД
Oracle
----- СУТЬ ПРЕДЛОЖЕНИЯ -----
Переделать кеш записей в драйвере оракла, чтобы сделать возможным построчное удаление из кеша.
Требуется процедура удаления из кеша по комбинации номер_таблицы + адрес_записи.
Эту процедуру вызывать из своих апдейтов и приходящих оповещений, а также дать возможность вызывать из программы на VIP
Как измененно :
Добавлена процедура языка VIP
procedure PurgeRecordFromCache(tableCode : WORD; pos : PositionHandle);
На оракле она удаляет все записи, содержащие данную строку данной таблицы (в том числе в качестве подцепленной таблицы). Если параметр передать pos = NULL -- чистит всё по этой таблице.
На MSSQL чистит всё по данной таблице (форма кеша не позволяет чистить частично)
При исправлении или удалении записи в табличном редакторе (только вручную пользователем!) отправляются оповещения другим клиентам; при приёме такого сообщения теперь вызывается указанная процедура, а потом вызывается перерисовка некоторых видимых элементов.
Можно отключить вызов PurgeRecordFromCache, вернув старое поведение, задав параметр
Network.UpdateTable=ON_PARTIAL (будет пересканирование видимых элементов без чистки кеша)
При использовании PurgeRecordFromCache в прикладном коде для перерисовки видимого элемента также надо этому элементу сделать RescanPanel
При выполнении обычного Update/Delete эта процедура вызывается автоматически