Свойство
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);
В случае возникновения непредвиденной ситуации все открытые через данное соединение наборы данных можно быстро закрыть методом