Соединение с сервером баз данных
После выбора настроенного соединения или выбора типа сервера и настройки параметров соединения компонент TSQLConnection готов к работе.
Свойство:
property Connected: Boolean;
…открывает соединение с сервером при значении True. Аналогичную операцию выполняет метод:
procedure Open;
После открытия соединения все компоненты dbExpress, инкапсулирующие наборы данных и связанные с открытым компонентом TSQLConnection, получают доступ к базе данных.
Соединение закрывается тем же свойством connected или методом:
procedure Close;
При открытии и закрытии соединения разработчик может использовать обработчики событий:
property BeforeConnect: TNotifyEvent; property AfterConnect: TNotifyEvent; property BeforeDisconnect: TNotifyEvent; property AfterDisconnect: TNotifyEvent;
Например, на стороне клиента можно организовать проверку пользователя приложения:
procedure TForml.MyConnectionBeforeConnect(Sender: TObject); begin if MyConnection.Params.Values['User_Name']) <> DefaultUser then begin MessageDlg('Wrong user name', mtError, [mbOK], 0); Abort; end; end;
Свойство:
property LoginPrompt: Boolean;
…определяет, нужно ли отображать диалог авторизации пользователя перед открытием соединения.
О текущем состоянии соединения можно судить по значению свойства:
TConnectionState = (csStateClosed, csStateOpen, csStateConnecting, csStateExecuting, csStateFetching, csStateDisconnecting); property ConnectionState: TConnectionState;
Параметры соединения можно настраивать на этапе разработки в Инспекторе объектов или Редакторе соединений (см. рис. 17.1). Также это можно сделать и непосредственно перед открытием соединения, используя свойство Params или метод:
procedure LoadParamsFromlniFile(AFileName: String = '');
…который загружает заранее подготовленные параметры из INI-файла. Проверить успешность этой операции можно при помощи свойства:
property Params Loaded: Boolean;
…значение True которого сигнализирует об успехе загрузки.
procedure TForml.StartBtnClickfSender: TObject); begin if MyConnection.Params.Values['DriverName'] = " then MyConnection.LoadParamsFromlniFile ('c:\Temp\dbxalarmconnections.ini'); if MyConnection.ParamsLoaded then try MyConnection.Open; except MessageDlgt'Database connection error', mtError, [mbOK], 0); end; end;