Для восстановления соединений с различными БД нужно настроить реакцию на типы ошибок, после которых нужно восстановить соединение с БД. В реестре перечислите НАЧАЛА строк сообщений об ошибках, после которых нужно восстановить соединение с БД.
[HKEY_LOCAL_MACHINE\SOFTWARE\Ensen\is2sql\1.0\ReconnectError]
"Count"=dword:00000002
"Each"=dword:00000000
"1"="ORA-01041"
"2"="ORA-03113"
Шлюз is2sql при обнаружении ошибки БД проверяет ее описание на совпадение с перечисленными в ReconnectError ошибками и прерывает соединение.
Параметр Each=1 заставляет прерывать соединение в случае любой ошибки. Параметр Count казывает последний номер в списке (начиная с 1).
По умолчанию число потоков - 8. Вы можете значительно экономить число сессий (соединений) с БД, указав нужное число потоков, особенно если Вы ограничены число сессий лицензией.
Шлюз не управляет тем, в каком потоке выполнять конкретный запрос. Это значит, что если через шлюз соединение делается к одной БД от имени одного пользователя, время реакции будет почти моментальным, так как поток сохраняет соединение с заданной БД от имени заданного пользователя.
Напротив, даже если соединение ранее в потоке было установлено, но заданные параметры dbs, user, key отличаются от бывших в прежнем обращении в потоке, шлюз закроет соединение потока с сервером БД и откроет его заново.
В случае локальной БД, а не SQL сервера, не требуется идентификация пользователя
Тег <#A name=sys value=qty> подставляет число записей в последнем выполненном запросе, то есть действует применительно к тегу <#T...>, стоящему перед <#A name=sys value=QTY>.
Первый раз при подсчете полей заново открывается последний выполненный запрос и подсчитывается число записей методом TQuery.RecordCount, удовлетворяющих условию. Вы можете поэксперементировать с тем, не будет ли эффективнее вставить тег <#T..> с запросом типа SELECT COUNT(..
Линейка листания страниц <#A name=sys value=pageline> не понуждает подсчитывать число записей. Поэтому, для аккуратного отображения перед этим тегом вставьте тег <#A name=sys value=qty>. Тег qty подсчитает число записей, и линейка будет правильно отображена. Иначе будет показана длинная линейка, (но не длиннее 10 ссылок, или как задано в настройках).
В старой версии не было таких ограничений, так как число записей подсчитывалось всегда, что было неэффективно при большом числе записей.
В случае локальной БД Вы можете захотеть пренебречь затратами на подсчет записей в запросе. Вставьте выделенный жирным текст в fis2sqlql.pas:
function ...DoLoadedFamily...
if Query1.Active then begin
FRecordsQty:= Query1.RecordCount;
FRecordsQtyCountDone:= True;