Задача 101.56329

Задача :101.56329

Краткое описание :
Переделать кеш записей в драйвере оракла, чтобы сделать возможным построчное удаление из кеша
Описание :
Oracle
Что измененно :


Кеш драйвера СУБД
Oracle

----- СУТЬ ПРЕДЛОЖЕНИЯ -----
Переделать кеш записей в драйвере оракла, чтобы сделать возможным построчное удаление из кеша.
Требуется процедура удаления из кеша по комбинации номер_таблицы + адрес_записи.
Эту процедуру вызывать из своих апдейтов и приходящих оповещений, а также дать возможность вызывать из программы на VIP

Как измененно :

Добавлена процедура языка VIP
procedure PurgeRecordFromCache(tableCode : WORD; pos : PositionHandle);
На оракле она удаляет все записи, содержащие данную строку данной таблицы (в том числе в качестве подцепленной таблицы). Если параметр передать pos = NULL -- чистит всё по этой таблице.
На MSSQL чистит всё по данной таблице (форма кеша не позволяет чистить частично)

При исправлении или удалении записи в табличном редакторе (только вручную пользователем!) отправляются оповещения другим клиентам; при приёме такого сообщения теперь вызывается указанная процедура, а потом вызывается перерисовка некоторых видимых элементов.
Можно отключить вызов PurgeRecordFromCache, вернув старое поведение, задав параметр
Network.UpdateTable=ON_PARTIAL (будет пересканирование видимых элементов без чистки кеша)

При использовании PurgeRecordFromCache в прикладном коде для перерисовки видимого элемента также надо этому элементу сделать RescanPanel
При выполнении обычного Update/Delete эта процедура вызывается автоматически

Название продукта Название компонента Тип Последняя версия Дата выхода
atlCore_ATLCORE_DLL5.5.22.0
AtlExecATLEXECEXE5.5.22.0
compdataCOMPDATARES5.5.22.0
ms70drvMS70DRVDLL5.5.22.0
ora90drvORA90DRVDLL5.5.22.0
SupportSUPPORTEXE5.5.22.0