sách gpt4 ai đã đi

Xác định phiên bản Firebird bằng SQL (phiên bản < 2.1)

In lại 作者:行者123 更新时间:2023-12-01 12:33:15 30 4
mua khóa gpt4 Nike

我有一个处理不同位置的数据库的应用程序,我想检查这些数据库是否使用 Firebird 2.5 或更高版本打开。我们最近从 Firebird 2.0 迁移到了 2.5,我们有很多数据库可以响应

select rdb$get_context('SYSTEM','ENGINE_VERSION') as "version" from RDB$DATABASE

with 'SQL 错误代码 = -804 函数未知 RDB$GET_CONTEXT。我猜是因为它们是用 Firebird 2.0 构建的 - 重建到 2.5 修复了它。

有没有一种方法可以检测正在使用的 firebird 服务,该服务可以应用于早于 2.1 的数据库?

1 Câu trả lời

您的客户端或连接 API 可以告诉您吗?例如,isql's SHOW VERSION或 DBD::Firebird 的 ib_database_info ?

如果没有,就用困难的方法找出它,探索从最近到最古老的功能。注意 ENGINE_VERSION support was introduced in 2.1 ,所以没有太多要检查的:

SELECT rdb$get_context('SYSTEM','ENGINE_VERSION')... -- ENGINE_VERSION >= 2.1
SELECT * FROM (SELECT ...) fb20; -- derived table -> FB 2.0
SELECT "fb15" FROM rdb$database WITH LOCK; -- LOCK -> FB 1.5
SELECT FIRST ... -- FIRST -> FB 1.0
else abort() -- prehistoric?

关于firebird - 使用 SQL 确定 Firebird 版本(版本 < 2.1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31611233/

30 4 0
Bài viết được đề xuất: rebol - block 的唯一性不会删除重复项
Bài viết được đề xuất: java - 有没有办法让泛型持续存在? [Java控制台]
Bài viết được đề xuất: java - 如何在不同的类中获取2个ArrayList?
Bài viết được đề xuất: string - 如何用 Salt 转义复杂的字符串?
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com