![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как программно получить список алиасов и создать новый? [D7, Paradox]
Zaero © (2005-08-14 07:45:00)Господа, подскажите пожалуйста, как программно (не запуская BDE Administrator) получить список алиасов и создать новый?
Anatoly Podgoretsky (2005-08-14 17:34:00) [1]Session.GetAliasNames остальное лишнее.
Zaero (2005-08-14 17:17:00) [2]Красиво! Премного благодарен!
Floppy (2005-08-14 11:11:00) [3]Взято с DelphiWorld
Список Alias
uses DB, DBTables, DBITypes, DBIProcs;
procedure TForm1.FormCreate(Sender: TObject);
begin
Session.GetAliasNames(ListBox1.Items);
end;
procedure TForm1.ListBox1Click(Sender: TObject);
var
tStr: array[0..100] of char;
Desc: DBDesc;
begin
if ListBox1.Items.Count = 0 then
exit;
StrPLCopy(tStr, ListBox1.Items.Strings[ListBox1.ItemIndex], High(tStr));
DbiGetDatabaseDesc(tStr, @Desc);
with Desc do
begin
Label1.Caption := StrPas(Desc.szName);
Label2.Caption := StrPas(Desc.szPhyName);
Label3.Caption := StrPas(Desc.szDbType);
Label4.Caption := StrPas(Desc.szText);
end;
end;
Добавить Alias
var
pszAliasName: PChar; { Имя псевдонима }
pszDriverType: PChar; { Тип драйвера для псевдонима }
pszParams: PChar; { Дополнительные параметры }
bPersist: Bool; { Постоянный или временный псевдоним }
dbiRes: Integer; { Возвращаемый код }
begin
pszAliasName := strAlloc(25);
pszDriverType := strAlloc(25);
pszParams := strAlloc(100);
try
bPersist := True;
strPcopy(pszAliasName, 'Lance');
strPcopy(pszDriverType, 'PARADOX');
strPcopy(pszParams, 'PATH:' + 'c:\Paradox\');
dbiRes := DbiAddAlias(nil, pszAliasName, pszDriverType, pszParams,
bPersist);
finally
strDispose(pszAliasName);
strDispose(pszDriverType);
strDispose(pszParams);
end;
end;
или
procedure CheckAlias(const AliasName, AliasType, AliasPath: String);
{ Если алиас не существует, создать его }
var
SList: TStrings;
i: Integer;
AliasFound: Boolean;
begin
{ Проверка существования алиса BDE }
try
SList := TStringList.Create;
Session.GetAliasNames(SList);
AliasFound := False;
for i:=0 to SList.Count-1 do
if SList[i]=AliasName then
begin
AliasFound := True;
break;
end;
finally
SList.Free;
end;
if AliasFound then
begin
try
SList := TStringList.Create;
Session.GetAliasParams(AliasName,SList);
{А в 4-ой версии SList[2]!!! и без слова Path }
if SList[0]< > 'PATH='+AliasPath then { Правильно ли задан путь }
begin
SList[0] := 'PATH='+AliasPath;
Session.ModifyAlias(AliasName,SList);
end;
finally
SList.Free;
end;
end
else
Session.AddStandardAlias(AliasName,AliasPath,AliasType); { Создать новый алиас }
Session.SaveConfigFile;
end;
Ученик (2005-08-14 10:24:00) [4]Создать новый алиас - использовать TDatabase
Zaero (2005-08-14 07:46:00) [5]Естественно, новый алиас, а не список! ;)