|
Вопрос # 716/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Можно ли задать псевдоним базы данных и изменить ее расположение на диске во время выполнения программы, а не через BDE administrator? Если да то как? Спасибо!
 |
Вопрос задал: Евгений Eklmn (статус: Посетитель)
Вопрос отправлен: 9 июля 2007, 20:49
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Градов Ю.М.
Здравствуйте, Трофимов Евгений!
Посмотрите код в приложении, может поможет
Приложение: Переключить в обычный режим- procedure TForm1.Button1Click(Sender: TObject);
- var
- MyList: TStringList;
- begin
- MyList := TStringList.Create;
- try
- with MyList do
- begin
- Add('SERVER NAME=IB_SERVER:/PATH/DATABASE.GDB');
- Add('USER NAME=MYNAME');
- end;
- Session1.AddAlias('NewIBAlias', 'INTRBASE', MyList);
- finally
- MyList.Free;
- end;
- end;
-
-
 |
Ответ отправил: Градов Ю.М. (статус: 8-ой класс)
Время отправки: 9 июля 2007, 20:58
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 3; последнее сообщение — 11 июля 2007, 21:45; участников в обсуждении: 2.
|
Евгений Eklmn (статус: Посетитель), 10 июля 2007, 11:05 [#1]:
Как сопоставить таблицу с бд? Спасибо!
Генерация случайных чисел - слишком важный вопрос, чтобы оставлять его на волю случая. (Роберт Ковзю, Окриджская лаборатория)
|
|
Градов Ю.М. (статус: 8-ой класс), 11 июля 2007, 21:42 [#2]:
Используйте Session.GetAliasParams. В ответ вы получите объект TStrings, откуда вы можете получить значение для переменной 'PATH'. Для получения дополнительной информации обратитесь к электронной справке к разделу, описывающему TSession. Объект Session объявлен в модуле DB.
uses db;
var
aliaspath: string[128];
begin
aliaspath := Session.GetAliasParams['MyAlias'].values['PATH'];
end;
uses SysUtils,DbiProcs, DBiTypes;
...
function GetDataBaseDir(const Alias : string): String;
(* Возвращает каталог базы данных, на которую
ссылается псевдним (без конечного обратного слеша) *)
var
sp: PChar;
Res: pDBDesc;
begin
try
New(Res);
sp := StrAlloc(length(Alias)+1);
StrPCopy(sp,Alias);
if DbiGetDatabaseDesc(sp,Res) = 0 then
Result := StrPas(Res^.szPhyName)
else
Result := '';
finally
StrDispose(sp);
Dispose(Res);
end;
end;
|
|
Градов Ю.М. (статус: 8-ой класс), 11 июля 2007, 21:45 [#3]:
function GetPathNameByAlias(sAlias: string): string;
var
Database: TDatabase;
pszDir: PChar;
begin
Database := TDatabase.Create(nil); {allocate memory}
pszDir := StrAlloc(255);
try
Database.AliasName := sAlias;
Database.DatabaseName := 'TEMP';
Database.Connected := True;
DbiGetDirectory(Database.Handle, True, pszDir);
Database.Connected := False;
Result := StrPas(pszDir);
finally
Database.Free;
end;
end;
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|