-
Уважаемый PEAKTOP! Вы очень точно ответили на очень полезный вопрос, однако приведенный Вами запрос (копирую):
SELECT RDB$GET_CONTEXT('SYSTEM', 'ENGINE_VERSION ') FROM RDB$DATABASE
не работает, а вот этот:
SELECT RDB$GET_CONTEXT('SYSTEM', 'ENGINE_VERSION') FROM RDB$DATABASE
работает!
-
Уважаемый PEAKTOP! Вы очень точно ответили на очень полезный вопрос, однако приведенный Вами запрос (копирую):
SELECT RDB$GET_CONTEXT('SYSTEM', 'ENGINE_VERSION ') FROM RDB$DATABASE
не работает, а вот этот:
SELECT RDB$GET_CONTEXT('SYSTEM', 'ENGINE_VERSION') FROM RDB$DATABASE
работает!
-
Извините за повтор.
-
Для работы FireDac необходимо указать расположение fbclient.dll. В зависимости от версии Firebird и самой OC - путь разный. Получается, чтобы запустить запрос необходимо настроить ConnectionString. А чтобы настроить ConnectionString надо знать расположение fbclient.dll. Замкнутый круг получается.
PS: Меня волнует не версия сервера (хотя и это важно), а расположение библиотеки fbclient.dll.
Заранее спасибо.
-
немного мытарства и вот родил сие чудо:
...
Uses Registry, Windows;
...
Reg := TRegistry.Create;
try
REG.RootKey := HKEY_LOCAL_MACHINE;
if Reg.KeyExists('SOFTWARE\Firebird Project\Firebird Server\Instances') then begin
if reg.OpenKey('SOFTWARE\Firebird Project\Firebird Server\Instances', False) then
MessageDlg('Зер гуд!!! ' + reg.ReadString('DefaultInstance'),
TMsgDlgType.mtInformation,[TMsgDlgBtn.mbOK], 0);
end
Else
MessageDlg('Серверайтенг обломайтунг!!!',
TMsgDlgType.mtInformation,[TMsgDlgBtn.mbOK], 0);
finally
Reg.Free;
end;
-
если облагородить будет выглядеть вот так: ...
Uses Registry, Windows;
...
Function GetPathFBclient: TFileName;
Var
Reg: TRegistry;
Begin
Result := '';
Reg := TRegistry.Create;
try
REG.RootKey := HKEY_LOCAL_MACHINE;
if Reg.KeyExists('SOFTWARE\Firebird Project\Firebird Server\Instances') then
if reg.OpenKeyReadOnly('SOFTWARE\Firebird Project\Firebird Server\Instances') then
Result := reg.ReadString('DefaultInstance') + 'bin\fbclient.dll';
finally
Reg.Free;
end;
End; Пример использования: Var
V: TFileName;
Begin
V := GetPathFBclient;
If V <> '' then
Else
End;
|