Управление соединением
После открытия соединения для выполнения собственного кода можно использовать метод-обработчик:
TConnectErrorEvent = procedure(Connection: TADOConnection; Error: Error; var Eventstatus: TEventStatus) of object; property OnConnectComplete: TConnectErrorEvent;
Здесь, если в процессе открытия соединения возникла ошибка, параметр Eventstatus будет равен esErrorsOccured, а параметр Error содержит объект ошибки ADO.
Теперь перейдем к вспомогательным свойствам и методам компонента TADOConnection, обеспечивающим соединение.
Для ограничения времени открытия соединения для медленных каналов связи используется свойство:
property ConnectionTimeout: Integer;
…задающее время ожидания открытия соединения в секундах. По умолчанию оно равно 15 сек.
Также можно определить реакцию компонента на неиспользуемое соединение. Если через соединение не подключен ни один активный компонент, свойство:
property KeepConnection: Boolean;
…в значении True сохраняет соединение открытым. Иначе, после закрытия последнего связанного компонента ADO, соединение закрывается.
При необходимости провайдер соединения ADO определяется напрямую свойством:
property Provider: WideString;
Имя источника данных по умолчанию задается свойством:
property DefaultDatabase: WideString;
Но если этот же параметр указан в строке соединения, то он перекрывает собой значение свойства.
При необходимости прямой доступ к объекту соединения OLE DB обеспечивает свойство:
property ConnectionObject: _Connection;
При открытии соединения необходимо вводить имя пользователя и его пароль. Появление стандартного диалога управляется свойством:
property LoginPrompt: Boolean;
Без этого диалога для задания данных параметров можно использовать свойство Connectionstring, метод open (см. выше) или метод-обработчик:
type TLoginEvent = procedure(Sender:TObject; Username, Password: string) of object; property OnLogin: TLoginEvent;
Свойство:
type TConnectMode = (cmUnknown, cmRead, cmWrite, cinReadWrite, cmShareDenyRead, cmShareDenyWrite, cmShareExclusive, cmShareDenyNone); property Mode: TConnectMode;
…задает доступные для соединения операции:
- cmUnknown – разрешение неизвестно или не может быть установлено;
- cmRead – разрешение на чтение;
- cmwrite – разрешение на запись;
- cmReadWrite – разрешение на чтение и запись;
- cmshareDenyRead – разрешение на чтение для других соединений запрещено;
- cmshareoenywrite – разрешение на запись для других соединений запрещено;
- cmShareExciusive – разрешение на открытие для других соединений запрещено;
- cmshareDenyNone – открытие других соединений с разрешениями запрещено.