Главная » Delphi » Ввод имени пользователя и пароля при подключении к базе данных

0

Чтобы отменить запрос на ввод имени пользователя и пароля при  подключении к базе  данных, достаточно присвоить свойству  TADOConnection.LoginPrompt значе ние False. Но если для подключения к базе данных  имя пользователя и пароль явля ются необходимым условием,  то придется выполнить некоторые дополнительные действия.

CОВЕТ

Для  проверки  необходимости  этого  условия  можно  защитить  базу  данных  паролем. В Microsoft Access эта операция выполняется в режиме монопольного доступа, который включается во вкладке Advanced (Дополнительно) диалогового окна Options (меню Tools пункт Options). Можно также просто использовать базу данных ddgADOPW.mdb, находящую- ся на прилагаемом компакт-диске (пароль — ddg рис. 9.8).

Чтобы воспользоваться базой данных  ddgADOPW.mdb, для нее необходимо создать новое  имя источника данных, например DdgADOOrdersSecure.

Если необходимо отменить запрос при  подключении к защищенной базе данных, то  корректное имя  пользователя и пароль должны  указываться в свойстве Connec- tionString. Это можно  сделать  вручную или  при  помощи редактора свойства Con- nectionString. В случае использования редактора следует также установить флажок Allow Saving Password (Разрешить сохранение пароля) (рис. 9.8).

Теперь строка подключения выглядит следующим образом:

Provider=MSDASQL.1;Password=ddg; Persist Security Info=True;

User ID=Admin;Data Source=DdgADOOrdersSecure

Обратите  внимание! Здесь  указаны  и  пароль, и  имя  пользователя (ID).  Теперь можно  присвоить свойству  Connected компонента TADOConnection значение True (при  этом свойство LoginPrompt должно иметь значение False).

Рис. 9.8. Добавление имени пользователя и пароля в строку подключения

Теперь заменим стандартное диалоговое окно  запроса при  подключении к базе данных.  Для этого  нужно удалить имя пользователя и пароль из свойства Connec- tionString и создать  обработчик события TADOConnection.OnWillConnect так, как представлено в листинге 9.1.Листинг 9.1. Обработчик события OnWillConnectprocedure TForm1.ADOConnection1WillConnect(Connection: TADOConnection;

var ConnectionString, UserID, Password: WideString;

var ConnectOptions: TConnectOption;

var EventStatus: TEventStatus);

var vUserID,

vPassword: String;

begin

if InputQuery(‘Provide User name’,

‘Enter User name’, vUserID) then

if InputQuery(‘Provide Password’,

‘Enter Password’, vPassword) thenend;

begin

UserID := vUserID;

Password := vPassword;

end;

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

НА ЗАМЕТКУ

На первый взгляд может показаться, что реализация ввода имени пользователя и па- роля должна выполняться так же, как и для компонента TDatabase, в обработчике со- бытия TADOConnection.OnLogin. Но вместо него используется событие TADOCon- nection.OnWillConnnect, которое является оболочкой стандартного события ADO. В данном  случае  событие OnLogin используется классом TDispatchConnection, предназначенным для поддержки многоуровневой архитектуры.

Источник: Тейксейра, Стив, Пачеко, Ксавье.   Borland Delphi 6. Руководство разработчика. : Пер.  с англ. — М. : Издательский дом “Вильямс”, 2002. —  1120 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии