-
1. Можно ли получить список алиасов только типа Interbase? 2. Как получить путь к базе данных по алиасу?
-
1. получить все, отобрать по типу. 2. параметр SERVER NAME
вы вообще БДЕ Администратор запускали, смотрели? запустите, посмотрите
-
В BDE Администратор запускаю, вижу, что алиасы intrbase есть, файл базы указан в параметре server name... А как программно получить полное имя файла БД, по его алиас.
-
Раздел Working with BDE aliases в справке.
-
> полное имя файла БД
это, ИМХО, должно интересовать сервер БД, а тебя только имя(ip) компьютера, на котором крутится сервер и имя БД(алиас)
-
interbase server стоит на локальной машине. Я пишу утилитку. Хочу чтоб юзер выбирал алиас, а утилитка подключается к файлу БД, по его алиасу. в Инете нашел только
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);
end;
end;
в результате Label2.Caption := пустое, я полагаю, что Desc.szPhyName выдает только PATH для алиасов типа STANDART а как получить server name алиаса типа Itrbase?
-
> Spot (17.04.09 04:56) [5]
А нафига то путь тебе? Все равно нужен АЛИАС, больше ничего. Выбрал-подключился
-
>Spot (17.04.09 04:56) [5] >Хочу чтоб юзер выбирал алиас, а утилитка подключается к файлу БД, по его алиасу.
Это вообще не юзера дело - выбирать БД, к которой подключаться. Если, конечно, это не программа - сервис. Параметры подключения, в т.ч. алиас, следует хранить в настройках приложения (реестр или ini)
ЗЫ. А почему, кстати, используется биде ? Ведь в Дельфи есть "родные" компоненты (Interbase)
-
> Я пишу утилитку. Хочу чтоб юзер выбирал алиас, а утилитка > подключается к файлу БД, по его алиасу.
function TDataModule.GetDataBase (const AliasName: string): string; var DBParams: TStrings; begin DBParams := TStringList.Create; try with dbRPS do Session.GetAliasParams(AliasName, DBParams); Result := DBParams.Values['SERVER NAME']; finally DBParams.Free; end; end;
-
> Игорь Шевченко © (17.04.09 11:08) [8]
так понятно было, что перец справку не читал
-
Респект Игорю Шевченко, помогло.
|