有没有任何方法可以使用SQL或代码(Delphi、C ++)来确定Firebird SQL的版本?
再见
如果您想通过SQL查找它,可以使用get_context来查找引擎版本,如下所示:
SELECT rdb$get_context('SYSTEM', 'ENGINE_VERSION')
as version from rdb$database;
你可以在这里Firebird FAQ了解更多信息,但我认为需要使用Firebird 2.1。
你可以做两件事情:
使用Services API查询服务器版本,调用isc_service_query()
并传入isc_info_svc_server_version
参数。你喜欢的Delphi组件集应该提供了一个方法来包装这个API。
对于C++,例如IBPP就有IBPP::Service::GetVersion()
返回版本字符串。
你得到的是在控制面板小程序中显示的相同字符串。
如果你需要检查某些功能是否可用,执行针对系统表的语句以检查给定的系统关系或该关系中的某个字段是否可用可能足够(甚至更好)。如果数据库的ODS版本较旧,则可能不支持某些功能,即使服务器版本足够新。
ODS版本也可以通过API查询,使用isc_database_info()
调用。
也许你有FIBPlus(http://www.devrace.com/en/fibplus/)...它拥有安装、卸载、启动、停止Firebird/Interbase以及获取服务器版本等所有必要的工具和源代码。无论如何,你可以从客户端驱动程序(Firebird的fbclient.dll)中获取版本信息。DelphiDabbler(http://www.delphidabbler.com/software/verinfo/download)提供了免费的源代码,可以获取任何DLL文件的文件版本。你可以轻松使用它。
开始事务... 准备查询:SELECT rdb$get_context('SYSTEM', 'ENGINE_VERSION') from rdb$database 错误:*** IBPP::SQLException *** 上下文:Statement::Prepare( SELECT rdb$get_context('SYSTEM', 'ENGINE_VERSION') from rdb$database ) 消息:isc_dsql_prepare 失败SQL 消息:-804 应用程序输入参数中发现 SQL 语句的错误。引擎代码:335544569 引擎消息: 动态 SQL 错误 SQL 错误代码 = -804 未知函数 RDB$GET_CONTEXT - truthseeker