Pergunta

Existe alguma maneira de determinar a versão do Firebird SQL está em execução? usando SQL ou código (Delphi, C ++).

Bye

Foi útil?

Solução

Se você quiser encontrá-lo através de SQL você pode usar get_context para encontrar a versão do motor com o seguinte:

SELECT rdb$get_context('SYSTEM', 'ENGINE_VERSION') 
             as version from rdb$database;

Você pode ler mais sobre isso aqui firebird faq , mas requer Firebird 2.1 acredito.

Outras dicas

Duas coisas que você pode fazer:

  • utilizar os serviços API para consultar a versão do servidor, a chamada é isc_service_query() com o parâmetro isc_info_svc_server_version. Seu Delphi conjunto de componentes preferidos deve tona um método para embrulhar esta API.
    Para C ++ existe por exemplo IBPP que tem IBPP::Service::GetVersion() para retornar a cadeia de versão.
    O que você recebe de volta com estes é a mesma cadeia que é mostrado no applet do painel de controle.

  • Se você precisa verificar se determinados recursos estão disponíveis pode ser suficiente (ou ainda melhor) para executar declarações contra as tabelas do sistema para verificar se uma dada relação de sistema ou algum campo em que a relação está disponível. Se os ODS de banco de dados é de uma versão mais antiga algumas características podem não ser suportados, mesmo que a versão do servidor é suficiente recente.
    A versão ODS também pode ser consultado através da API, use a chamada isc_database_info().

Pode ser que você tem FIBPlus ( http://www.devrace.com/en/fibplus/ ) ... ele tem todas as ferramentas e recursos necessários para instalar, desinstalar, start, stop Firebird / Interbase e também para obter a versão do servidor e mais. Em qualquer caso, você pode obter a versão do driver cliente (fbclient.dll para Firebird). DelphiDabbler ( http://www.delphidabbler.com/software/verinfo/download ) tem fontes livres que começam versão de qualquer DLL arquivo. Você pode facilmente usar isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top