Maneiras de determinar a versão do Firebird SQL?
Pergunta
Existe alguma maneira de determinar a versão do Firebird SQL está em execução? usando SQL ou código (Delphi, C ++).
Bye
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âmetroisc_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 temIBPP::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 chamadaisc_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.