如何确定 Firebird SQL 的版本?
有什么方法可以确定 Firebird SQL 正在运行哪个版本? 使用 SQL 或代码(Delphi、C++)。
Is there any way to determine which version of Firebird SQL is running? Using SQL or code (Delphi, C++).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
可能您有 FIBPlus ( http://www.devrace.com/en/fibplus/ ) ...它拥有安装、卸载、启动、停止 Firebird/Interbase 以及获取服务器版本等所需的所有工具和源。 无论如何,您都可以从客户端驱动程序(Firebird 的 fbclient.dll)获取版本。 DelphiDabbler ( http://www.delphidabbler.com/software/verinfo/download )有获取任何 DLL 文件版本的免费资源。 您可以轻松使用它。
May be you have FIBPlus ( http://www.devrace.com/en/fibplus/ ) ... it has all the tools and sources necessary to install, uninstall, start, stop Firebird/Interbase and also to get the version of the server and more. In any case, you can get the version from the client driver (fbclient.dll for Firebird). DelphiDabbler ( http://www.delphidabbler.com/software/verinfo/download ) has free sources that get file version of any DLL. You can easily use that.
你可以做两件事:
使用Services API查询服务器版本,调用是
isc_service_query()
与isc_info_svc_server_version
参数。 您首选的 Delphi 组件集应该提供一个方法来包装此 API。对于 C++,例如 IBPP 具有
IBPP::Service::GetVersion()
返回版本字符串。您得到的返回值与控制面板小程序中显示的字符串相同。
如果您需要检查某些功能是否可用,那么针对系统表执行语句来检查给定的系统关系或该关系中的某些字段是否可用可能就足够了(甚至更好)。 如果数据库的 ODS 来自旧版本,即使服务器版本足够新,某些功能也可能不受支持。
ODS 版本也可以通过 API 查询,使用
isc_database_info()
调用。Two things you can do:
Use the Services API to query the server version, the call is
isc_service_query()
with theisc_info_svc_server_version
parameter. Your preferred Delphi component set should surface a method to wrap this API.For C++ there is for example IBPP which has
IBPP::Service::GetVersion()
to return the version string.What you get back with these is the same string that is shown in the control panel applet.
If you need to check whether certain features are available it may be enough (or even better) to execute statements against the system tables to check whether a given system relation or some field in that relation is available. If the ODS of the database is from an older version some features may not be supported, even though the server version is recent enough.
The ODS version can also be queried via the API, use the
isc_database_info()
call.如果你想通过 SQL 找到它,你可以使用 get_context 来查找引擎版本如下:
您可以在此处阅读更多信息 firebird 常见问题解答,但它需要 Firebird 2.1我相信。
If you want to find it via SQL you can use get_context to find the engine version it with the following:
you can read more about it here firebird faq, but it requires Firebird 2.1 I believe.