是否有任何方法可以确定正在运行的 Firebird SQL 的版本?使用 SQL 或代码(delphi、C++)。
再见
如果你想通过 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 的文件版本。你可以很容易地使用它。