Задание псевдонима программным путем

Previous  Top  Next

    
 

 

Эта информация поможет вам разобраться в вопросе создания и использования ПСЕВДОНИМОВ баз данных в ваших приложениях.

 

Вне Delphi создание и конфигурирование псевдонимов осуществляется утилитой BDECFG.EXE. Тем не менее, применяя компонент TDatabase, вы можете в вашем приложении создать и использовать псевдоним, не определенный в IDAPI.CFG.

 

Важно понять, что создав псевдоним, использовать его можно только в текущем сеансе вашего приложения. Псевдонимы определяеют расположение таблиц базы данных и параметры связи с сервером баз данных. В конце концов, вы получаете преимущества использования псевдонимов в пределах вашего приложения без необходимости беспокоиться о наличии их в конфигурационном файле IDAPI.CFG в момент инициализации приложения.

 

Некоторые варианты решения задачи:

 

Пример #1:

 

Пример #1 создает и конфигурирует псевдоним для базы данных STANDARD (.DB, .DBF). Псевдоним затем используется компонентом TTable.

 

Пример #2:

 

Пример #2 создает и конфигурирует псевдоним для базы данных INTERBASE (.gdb). Псевдоним затем используется компонентом TQuery для подключения к двум таблицам базы данных.

 

Пример #3:

 

Пример #3 создает и конфигурирует псевдоним для базы данных STANDARD (.DB, .DBF). Демонстрация ввода псевдонима пользователем и его конфигурация во время выполнения программы.

 

Пример #1: Используем базу данных .DB или .DBF (STANDARD)

 

Создаем новый проект.

Располагаем на форме следующие компоненты: - 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.

Code:

procedure TForm1.Button1Click(Sender: TObject);

begin

Table1.Tablename:= 'CUSTOMER';

Table1.Active:= True;

end;

 

 

 

 

Запускаем приложение.

*** В качестве альтернативы шагам 3 - 11, вы можете включить все эти действия в сам обработчик:

 

Code:

procedure TForm1.Button1Click(Sender: TObject);

begin

Database1.DatabaseName:= 'MyNewAlias';

Database1.DriverName:= 'STANDARD';

Database1.Params.Clear;

Database1.Params.Add('PATH=C:\DELPHI\DEMOS\DATA');

Table1.DatabaseName:= 'MyNewAlias';

Table1.TableName:= 'CUSTOMER';

Table1.Active:= True;

DataSource1.DataSet:= Table1;

DBGrid1.DataSource:= DataSource1;

end;

 

 

 

 

 

 

 

Пример #2: Используем базу данных INTERBASE

 

Создаем новый проект.

Располагаем на форме следующие компоненты: - 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.

Code:

procedure TForm1.Button1Click(Sender: TObject);

begin

Query1.SQL.Clear;

Query1.SQL.ADD(

'SELECT DISTINCT * FROM CUSTOMER C, SALES S

   WHERE (S.CUST_NO = C.CUST_NO)

   ORDER BY C.CUST_NO, C.CUSTOMER');

Query1.Active:= True;

end;

 

 

 

 

 

 

 

Запускаем приложение.

Пример #3: Ввод псевдонима пользователем

 

Этот пример выводит диалоговое окно и создает псевдоним на основе информации, введенной пользователем.

 

Директория, имя сервера, путь, имя базы данных и другая необходимая информация для получения псевдонима может быть получена приложением из диалогово окна или конфигурационного .INI файла.

 

 

Выполняем шаги 1-11 из примера #1.

Пишем следующий обработчик события OnClick компонента TButton:

 

Code:

procedure TForm1.Button1Click(Sender: TObject);

var

NewString: string;

ClickedOK: Boolean;

begin

NewString := 'C:\';

ClickedOK := InputQuery('Database Path',

   'Path: --> C:\DELPHI\DEMOS\DATA', NewString);

if ClickedOK then

begin

   Database1.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;

 

 

 

Запускаем приложение.

©Drkb::02525

       

Взято с http://delphiworld.narod.ru