Задание псевдонима программным путем
Вне Delphi создание и конфигурирование псевдонимов осуществляется утилитой BDECFG.EXE. Тем не менее, применяя компонент TDatabase, вы можете в вашем приложении создать и использовать псевдоним, не определенный в IDAPI.CFG.
Важно понять, что создав псевдоним, использовать его можно только в текущем сеансе вашего приложения. Псевдонимы определяеют расположение таблиц базы данных и параметры связи с сервером баз данных. В конце концов, вы получаете преимущества использования псевдонимов в пределах вашего приложения без необходимости беспокоиться о наличии их в конфигурационном файле IDAPI.CFG в момент инициализации приложения.
- Создаем новый проект.
- Располагаем на форме следующие компоненты: - TDatabase, TTable, TDataSource, TDBGrid, and TButton.
- Дважды щелкаем на компоненте TDatabase или через контекстное меню (правая кнопка мыши) вызываем редактор базы данных.
- Присваиваем базе данных имя 'MyNewAlias'. Это имя будет выполнять роль псевдонима в свойстве DatabaseName для компонентов типа TTable, TQuery, TStoredProc.
- Выбираем в поле Driver Name (имя драйвера) пункт STANDARD.
- Щелкаем на кнопке Defaults. Это автоматически добавляет путь (PATH=) в секцию перекрытых параметров (окно Parameter Overrides).
- Устанавливаем PATH= to C:\DELPHI\DEMOS\DATA (PATH=C:\DELPHI\DEMOS\DATA).
- Нажимаем кнопку OK и закрываем окно редактора.
- В компоненте TTable свойству DatabaseName присваиваем 'MyNewAlias'.
- В компоненте TDataSource свойству DataSet присваиваем 'Table1'.
- В компоненте DBGrid свойству DataSource присваиваем 'DataSource1'.
- Создаем в компоненте TButton обработчик события OnClick. procedure TForm1.Button1Click(Sender: TObject);beginTable1.Tablename:= 'CUSTOMER';Table1.Active:= True;end;
- Запускаем приложение.
- Создаем новый проект.
- Располагаем на форме следующие компоненты: - TDatabase, TQuery, TDataSource, TDBGrid, and TButton.
- Дважды щелкаем на компоненте TDatabase или через контекстное меню (правая кнопка мыши) вызываем редактор базы данных.
- Присваиваем базе данных имя 'MyNewAlias'. Это имя будет выполнять роль псевдонима в свойстве DatabaseName для компонентов типа TTable, TQuery, TStoredProc.
- Выбираем в поле Driver Name (имя драйвера) пункт INTRBASE.
- Щелкаем на кнопке Defaults. Это автоматически добавляет путь (PATH=) в секцию перекрытых параметров (окно Parameter Overrides).
SERVER NAME=IB_SERVEER:/PATH/DATABASE.GDB
USER NAME=MYNAME
OPEN MODE=READ/WRITE
SCHEMA CACHE SIZE=8
LANGDRIVER=
SQLQRYMODE=
SQLPASSTHRU MODE=NOT SHARED
SCHEMA CACHE TIME=-1
PASSWORD= - Устанавливаем следующие параметры
SERVER NAME=C:\IBLOCAL\EXAMPLES\EMPLOYEE.GDB
USER NAME=SYSDBA
OPEN MODE=READ/WRITE
SCHEMA CACHE SIZE=8
LANGDRIVER=
SQLQRYMODE=
SQLPASSTHRU MODE=NOT SHARED
SCHEMA CACHE TIME=-1
PASSWORD=masterkey - В компоненте TDatabase свойство LoginPrompt устанавливаем в 'False'. Если в секции перекрытых параметров (Parameter Overrides) задан пароль (ключ PASSWORD) и свойство LoginPrompt установлено в 'False', при соединении с базой данный пароль запрашиваться не будет. Предупреждение: при неправильно указанном пароле в секции Parameter Overrides и неактивном свойстве LoginPrompt вы не сможете получить доступ к базе данных, поскольку нет возможности ввести правильный пароль - диалоговое окно "Ввод пароля" отключено свойством LoginPrompt.
- Нажимаем кнопку OK и закрываем окно редактора.
- В компоненте TQuery свойству DatabaseName присваиваем 'MyNewAlias'.
- В компоненте TDataSource свойству DataSet присваиваем 'Query1'.
- В компоненте DBGrid свойству DataSource присваиваем 'DataSource1'.
- Создаем в компоненте TButton обработчик события OnClick. procedure TForm1.Button1Click(Sender: TObject);beginQuery1.SQL.Clear;Query1.SQL.ADD('SELECT DISTINCT * FROM CUSTOMER C, SALES SWHERE (S.CUST_NO = C.CUST_NO)ORDER BY C.CUST_NO, C.CUSTOMER');Query1.Active:= True;end;
- Запускаем приложение.
Этот пример выводит диалоговое окно и создает псевдоним на основе информации, введенной пользователем.
Директория, имя сервера, путь, имя базы данных и другая необходимая информация для получения псевдонима может быть получена приложением из диалогово окна или конфигурационного .INI файла.
- Выполняем шаги 1-11 из примера #1.
- Пишем следующий обработчик события OnClick компонента TButton: procedure TForm1.Buttton1Click(Sender: TObject);
var
NewString: string;ClickedOK: Boolean;begin
NewString := 'C:\';ClickedOK := InputQuery('Database Path','Path: --> C:\DELPHI\DEMOS\DATA', NewString);if ClickedOK thenbeginDatabase1.DatabaseName:= 'MyNewAlias';Database1.DriverName:= 'STANDARD';Database1.Params.Clear;Database1.Params.Add('Path=' + NewString);Table1.DatabaseName:= 'MyNewAlias';Table1.TableName:= 'CUSTOMER';Table1.Active:= True;DataSource1.DataSet:= Table1;DBGrid1.DataSource:= DataSource1;end;end; - Запускаем приложение.