Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как программно получить список алиасов и создать новый? [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]

Естественно, новый алиас, а не список! ;)


Наверх

Титульная страница Поиск, карта сайта Написать письмо