Сегодня мы научимся создавать псевдонимы. Точнее сказать, я уже расказывал как это сделать, с помощью SQL Explorer, а сегодня мы это сделаем из собственной проги.
Брось на форму компонент TSession. Если ты работаешь с базой данных, то этот объект создаёться автоматически без твоего ведома. В нём хранится низкоуровневая информация о BDE, драйверах и многом другом. Если ты хочешь изменить какие-то значения указанные в этом объекте по умолчанию, то тебе необходимо:
Всем компонентам TTable и TQuery , для которых будут действовать установленные тобой значения, вполе SessionName нужно указать имя объекта TSession.
Для нашего примера достаточно первых двух действий, потому что у нас не будет компонентов TTable или TQuery.
Посмотри на рисунок 1 и сконструируй форму, подобную этой. Как только закончишь, продолжай читать.
Рассмотрим процедуру FormShow - которая вызывается на событие OnShow:
procedure TForm1.FormShow(Sender: TObject);
var
str:TStrings;
begin
Str:=TStringList.Create;
Session1.GetAliasNames(Str);
ListBox1.Items.Assign(Str);
Str.Free;
end;
Здесь я получаю список всех доступных в системе псевдонимов и вставляю этот список в TListBox. Рассмотрим по строчно. Сначала я объявляю переменную Str типа TStrings.
Str:=TStringList.Create - эта строка инициаизирует переменную Str, как список строк (TStringList).
Функция GetAliasNames компонента ТSession возвращает все доступные системе псевдонимы. В качестве параметра передаёться указатель на объект типа TStrings, куда запишутся весь список.
ListBox1.Items.Assign(Str) - копирую список в элементы ListBox1.
И последняя строка освобождает переменную Str.
Теперь создадим новый псевдоним стандартного типа. К этому типу относятся таблицы Paradox и DBF. Я создаю псевдоним по нажатию первой кнопки. Вот соответствующая процедура:
procedure TForm1.Button1Click(Sender: TObject);
var
str:TStrings;
begin
Session1.AddStandardAlias('VROnline','c:\','Paradox');
Str:=TStringList.Create;
Session1.GetAliasNames(Str);
ListBox1.Items.Assign(Str);
Str.Free;
end;
Создание происходит с помощью функции AddStandardAlias компонента ТSession. В качестве первого параметра, ты должен указать имя нового псевдонима. Второй - путь к базам данных, которые будут связаны с псевдонимом. Третий - драйвер, который будет использоватся по умолчанию.
После добавления, я снова получаю спсок доступных псевдонима и копирую его в TListBox.
Теперь создадим псевдоним нестандартого типа. Для примера будет использоваться Interbase. Он будет создаваться по нажатию второй кнопки:
procedure TForm1.Button2Click(Sender: TObject);
var
L: TStringList;
begin
L := TStringList.Create;
try
with L do
begin
Add('SERVER NAME=IB_SERVER:/PATH/DATABASE.GDB');
Add('USER NAME=MYNAME');
end;
Session1.AddAlias('NewIB', 'InterBase 4.x Driver by Visigen',L);
finally
L.Free;
end;
end;
Процедура AddAlias компонента ТSession создаёт псевдоним нестандартного типа. Первый параметр - имя псевдонима. Второй - имя драйвера. Третий параметр - указатель на TStringList, в котором хранятся дополнительные настройки. Дополнительные параметры хранятся в виде строк (например 'SERVER NAME= IB_SERVER: /PATH/DATABASE.GDB'). В строке указывается имя параметра и после знака равно его значение. Параметры могу тотличаться, в зависимости от драйвера. Чтобы узнать, какие параметры доступны, можно создать пробный псевдоним в SQL Explorer и посмотреть, какие там присутствуют параметры.
Внимание!!! - имя драйвера у тебя может отличаться. Чтобы увидеть все доступные драйверы, нужно войти в BDE Administrator . Здесь, на закладе Configuration на дереве выбираешь Drivers , и здес в разделах Native и ODBC есть все имена драйверов.
На сегодня всё.
Исходники примера забирай здесь