Периодический опрос БД

Готовые скрипты, модули расширений, динамические библиотеки и вспомогательные утилиты.
Аватара пользователя
Владимир
Администратор
Сообщения: 630
Зарегистрирован: 10 фев 2018, 18:27
Откуда: Белгород
Контактная информация:

Периодический опрос БД

Сообщение Владимир » 11 дек 2019, 10:40

Действие запуска. Поддерживает соединение с удаленной БД методом
периодического опроса через указанный промежуток времени (в минутах).


Примечание: расширение не решает в полной мере проблему частого разрыва коннекта. Необходимо указывать оптимальные настройки файла конфигурации Firebird и убедиться в качественном канале связи Клиент<->Сервер.
Код расширенияПоказать

Код: Выделить всё


{@module
author=Develop-Soft [ https://forum.develop-soft.ru ]
version=1.0
description=Сервисные функции
Действия:
1. Периодический опрос БД

Изменения:
v 1.0 от 11.12.2019 - выход первой версии
...
@}

{@action
Id=2F0668D7-C2EE-4770-A32B-B181CED5F751
Target=main
OrigName=KeepAliveTimer
Name=Периодический опрос БД
Group=Сервисные функции
UI=
<ui>
 <number name="Interval" caption="Период опроса БД (в минутах):"
  defaultvalue="3"/>
</ui>
Description=Действие поддерживает соединение с удаленной БД методом
периодического опроса через указанный промежуток времени (в минутах).
@}

var Old_MainWindowOnDatabaseClose:TNotifyEvent;
    KATimer:TTimer;

procedure MainWindow_OnDatabaseClose(Sender: TObject);
begin
  if Old_MainWindowOnDatabaseClose<>nil then Old_MainWindowOnDatabaseClose(Sender);
  KATimer.Enabled:=false;
  KATimer.Free;
end;

procedure OnKeepAliveTimer(Sender: TObject);
begin
  try
	KATimer.Enabled:=false;
	SQLSelect('select version from dx_version').Free;
	KATimer.Enabled:=true;
  except
	MsgBox('Периодический опрос БД','Потеряна связь с базой данных.');
  end;
end;

procedure KeepAliveTimer(Interval: integer);
begin
	KATimer:=TTimer.Create(MainWindow);
	KATimer.OnTimer:=@OnKeepAliveTimer;
  KATimer.Interval := Interval * 60000;
  Old_MainWindowOnDatabaseClose := MainWindow.OnDatabaseClose;
  MainWindow.OnDatabaseClose := @MainWindow_OnDatabaseClose;
end;


Скачать:
Опрос БД.epas
Версия 26.01.2020 с исправлениями
(1.69 КБ) 29 скачиваний


Поддержка проекта

Теги:

Аватара пользователя
Владимир
Администратор
Сообщения: 630
Зарегистрирован: 10 фев 2018, 18:27
Откуда: Белгород
Контактная информация:

Периодический опрос БД

Сообщение Владимир » 26 янв 2020, 16:51

26.01.2020 - исправлена найденная ошибка.

Ответить