Конференция "Базы" » Версия FireBird [D7]
 
  • apopury (18.06.13 13:16) [20]
    Уважаемый PEAKTOP! Вы очень точно ответили на очень полезный вопрос, однако приведенный Вами запрос (копирую):

    SELECT RDB$GET_CONTEXT('SYSTEM', 'ENGINE_VERSION ') FROM RDB$DATABASE

    не работает, а вот этот:

    SELECT RDB$GET_CONTEXT('SYSTEM', 'ENGINE_VERSION') FROM RDB$DATABASE

    работает!
  • apopury (18.06.13 13:17) [21]
    Уважаемый PEAKTOP! Вы очень точно ответили на очень полезный вопрос, однако приведенный Вами запрос (копирую):

    SELECT RDB$GET_CONTEXT('SYSTEM', 'ENGINE_VERSION ') FROM RDB$DATABASE

    не работает, а вот этот:

    SELECT RDB$GET_CONTEXT('SYSTEM', 'ENGINE_VERSION') FROM RDB$DATABASE

    работает!
  • apopury (18.06.13 13:19) [22]
    Извините за повтор.
  • Артем (02.07.13 12:51) [23]
    Для работы FireDac необходимо указать расположение fbclient.dll.
    В зависимости от версии Firebird и самой OC - путь разный.
    Получается, чтобы запустить запрос необходимо настроить  ConnectionString.
    А чтобы настроить ConnectionString надо знать расположение fbclient.dll. Замкнутый круг получается.

    PS: Меня волнует не версия сервера (хотя и это важно), а расположение библиотеки fbclient.dll.

    Заранее спасибо.
  • Артем (02.07.13 14:16) [24]
    немного мытарства и вот родил сие чудо:

    ...
    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;

  • Артем (02.07.13 15:33) [25]
    если облагородить будет выглядеть вот так:
    ...
    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
        {Сервер вроде как утстановлен согласно реестру, а Библиотека fbclient.dll находиться -> V}
     Else
       {Сервер не установлен вовсе}
    End;

 
Конференция "Базы" » Версия FireBird [D7]
Есть новые Нет новых   [119712   +172][b:0][p:0.001]