Свойство

prcperty Connected: Boolean;

открывает соединение с сервером при значении Тгае. Аналогичную операцию выполняет метод

procedura Среп;

После открытия соединения все компоненты dbExpress, инкапсулирующие наборы данных и связанные с открытым компонентом TSQLConnection, получают доступ к базе данных.

Соединение закрывается тем же свойством connected или методом procedure Close;

При открытии и закрытии соединения разработчик может использовать обработчики событий

prcperty BeforeConnect: TNotifyEvent;
prcperty AfterConnect: TNotifyEvent;
prcperty BeforeDisconnect: TNotifyEvent;
prcperty AfterDisconnect: TNotifyEvent;

Например, на стороне клиента можно организовать проверку пользователя приложения:

procedure TForml.MyConnectionBeforeConnect(Sender: TObject);
begin
if MyConnection.Params.Values['User_Name']) <>
DefaultUser then begin
MessageDlg('Wrong user name1, mtError, [mbOK] , 0);
Abort;
end;
end;

Свойство

prcperty LoginPrompt: Boolean;

определяет, нужно ли отображать диалог авторизации пользователя перед открытием соединения.

О текущем состоянии соединения можно судить по значению свойства

TConnectionState = (csStateCloseel, csStateOpen, csStateConnecting, csStateExecuting, csStateFetching, csStateDisconnecting) ;
prcperty CormectionState: TConnectionState;

Параметры соединения можно настраивать на этапе разработки в Инспекторе объектов или Редакторе соединений (см. рис. 17.1). Также это можно сделать и непосредственно перед открытием соединения, используя свойство Pa rams ИЛИ метод

procedure LoadParamsFromlniFile (AFileName : String = ' ') ; который загружает заранее подготовленные параметры из INI-файла. Проверить успешность этой операции можно при помощи свойства

property ParamsLoaded: Boolean;

значение True которого сигнализирует об успехе загрузки.

procedure TForml.StartBtnClick(Sender: TObject); begin if MyConnection.Params.Values['DriverName'] = 11 then

MyConnection.LoadParamsFromlniFile('c:\Temp\dbxalarmconnections.ini');

if MyConnection.ParamsLoaded then

try

NyConnection.Open;

except

MessageDlgf'Database connection error', mtError, [mbOK], 0);
end;
end;

Управление наборами данных

Компонент TSQLConnection позволяет выполнять некоторые операции с подключенными наборами данных и следить за их состоянием.

Свойство

property DataSetCount: Integer;

возвращает число подключенных через данное соединение наборов данных.

Но это только активные наборы данных, переданные в связанные компоненты. Общее число выполняющихся в настоящий момент запросов возвращает свойство

property ActiveStatements: LongWord;

Если сервер БД установил для данного соединения максимальное число одновременно выполняющихся запросов, то оно доступно в свойстве

property MaxStmtsPerConn: LongWord;

Поэтому перед открытием набора данных можно выполнять следующий код, который повысит надежность приложения:

if MyQuery.SQLConnection.ActiveStatements <= MyQuery.SQLConnection.MaxStmtsPerConn

then MyQuery.Open

else MessageDlg('Database connection is busy', mtWarning, [mbOK], 0);

В случае возникновения непредвиденной ситуации все открытые через данное соединение наборы данных можно быстро закрыть методом


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Август
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс