问题标签 [interbase]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
497 浏览

delphi - Win 7 x64 下的 Delphi 7 / IBQuery 只有在第二次单击后才能工作

我在一些装有 Win7 x64 的机器上遇到了一些 Ibquery 的问题。问题是查询第一次不起作用,我点击按钮并且查询为空,我再次点击(不是双击)它,它应该如何工作。我找不到问题,有没有人有想法或有同样的问题?

0 投票
1 回答
228 浏览

c# - 从 C# 连接到 Interbase 版本 5

有谁知道如何连接到旧版本的interbase(版本 5.5 / 5.6)使用.NET/C#

我不确定最新版本的驱动程序是否interbase可以工作或最终会导致损坏

0 投票
2 回答
422 浏览

.net - FBDataAdapter 使用 StoredProc 挂起填充

我有一个奇怪的问题。我正在使用 Firebird for .Net 并使用 Interbase 数据库。当我尝试使用 SQL 查询填充数据集时,它可以正常工作,但是当我尝试执行 storedProc 时,它会挂在填充方法上。

这是我的代码片段:

我搜索了人们建议的问题,如果已经与数据库建立了开放连接,就会发生这种情况,因此我创建了一个不打开连接的独立实用程序(Dataadapter 自行管理连接)。

请建议我在这里做错了什么。

亲切的问候,阿里

0 投票
2 回答
284 浏览

linux - 将文件系统写入记录为远程应用程序的二进制差异?

我正在使用不断更新的 ~20GB Interbase 备份,我想通过 Internet 进行复制。如何最小化传输的数据?

我正在考虑使用二进制差异工具,但我知道bsdiff至少需要 O(7n) 内存,而且这些 Interbase 备份只是在 LAN 上使用 Interbase 的专有gbak东西增量更改。有什么方法可以连接到 linux 文件系统 (ext/btrfs/...) 以捕获对此文件所做的所有更改,将其导出为常见的差异格式,然后在不同的 (windows) 平台上重新组装它?

0 投票
1 回答
294 浏览

sql - 对 XML 的跨库查询

我有一个 Interbase 数据库,我需要从中提取数据,但似乎不能将其放入 xml。我有一个名为地址的表,需要获取 ADDR1、ADDR2、STATE、ZIP、GARAGING。我可以使用 SQL 轻松获取信息,但我需要将其输出为 XML。我做了一些研究,发现:

http://support.codegear.com/article/35491

但这对我来说有点令人困惑。我的意思是很多。

谁能解释如何输出为 XML 或者更好地解释这个过程?

0 投票
1 回答
3168 浏览

c# - 无法检测到正确的字符编码

我需要从使用 InterBase 4.2.1 创建的一些旧的 interbase 数据库文件中提取数据。我正在使用 Firebird 的嵌入式版本(2.5.1 版)和 .NetProvider(2.7.0 版)。我以前从未使用过 interbase of firebird(但我对 SQL SERVER 和 SQLite 有一些经验),在浏览网络并试验了 2 天之后,我还没有找到解决方案。

数据库中的表格包含英语数据,但也包含希伯来语数据。尽管我很乐观,但我首先使用 UTF8 创建连接字符串:

但这给了我以下例外:

我正确使用了 fbintl.dll。(请参阅下面我的应用程序目录和子目录中的文件)。我什至使用 ProcessMonitor 来检查 fbintl.dll 是否已加载。

因此,我尝试枚举FbCharset并尝试连接每个字符集,其中一半以上抛出了相同的异常,当我与其他字符集连接并查询其中一个希伯来字段(通过使用IDataReader.GetString())时,我总是得到与结果相同的垃圾. 我在连接字符串中指定什么字符集似乎并不重要,结果总是相同的,即使我根本没有指定任何字符集。

接下来,我查询了数据库中定义的字符集,SELECT RDB$CHARACTER_SET_NAME FROM RDB$CHARACTER_SETS并列举了这些字符集,尝试连接它们中的每一个,有些抛出异常,其他的给出与以前相同的结果。

我不知道创建数据库的字符集是什么,但我检查了数据库中每个字段的字符集,所有文本字段的字符集都设置为“NONE”。

但我注意到一些系统表的文本字段具有 UNICODE_FSS 作为字符集。我已经在连接字符串中尝试过该字符集,但对于请求的文本字段,我仍然得到垃圾。

我最后一次尝试是检索字节(通过使用IDataReader.GetBytes())并自己编码字符串,但这给了我一个强制转换异常(Unable to cast object of type 'System.String' to type 'System.Byte[]'.

有人对如何读取这些数据有任何想法吗?我不需要永久转换数据库,因为一旦我提取了数据,它们将不再使用。

编辑:顺便说一句,是否有任何免费的轻量级 interbase/firebird 数据库查看器,我似乎找不到任何好的(与SQLiteSpy 相比)?

马克

0 投票
1 回答
6937 浏览

delphi - 尝试在 Delphi 中创建 Firebird 数据库时出现 EIBInterBaseError 'unavailable database'

我正在尝试在运行时创建一个 Firebird 数据库。我用来执行此操作的过程是这样的:

在我为测试此功能而创建的任何小项目中,我都毫无问题地实现了这一点。但是,如果我尝试在同一台机器、相同的 Delphi、相同的所有内容上运行此代码,除了它是一个不同(而且相当大)的项目,我会在 IBDatabase1.CreateDatabase 行上收到以下错误:

有人对这个有任何线索吗?也许某种方式可以正确调试?

提前致谢。

编辑

它似乎在我的项目文件中。我已经设法生成了一个新的并且问题消失了,但是我担心将来会被此咬伤。什么可能导致这种情况?

0 投票
3 回答
8433 浏览

firebird - 数据库是在哪个版本的 Interbase 或 Firebird 下创建的?

我有一个扩展名为.ib. 我猜它要么是Interbase文件,要么是Firebird文件,但我无法确定到底是哪个文件。此外,尚不清楚使用哪个版本的 Interbase(或 Firebird)来创建文件。

到目前为止我发现了什么:

我尝试了各种不同的软件来读取这个文件(FlameRobin、Firebird 的 isql.exe 以及最新版本的 Interbase),我收到的错误消息告诉我 ODS(“磁盘结构”)是第 9 版。这很旧,并且可以追溯到 Firebird 从 Interbase 分叉的时间。

我已经设法连接到数据库并使用 Firebird 查询它,但是我遇到的一些错误让我相信它实际上是一个 Interbase 数据库(如果需要,我可以进一步解释)

有没有一种万无一失的方法来确定正在处理的数据库类型?即它是Interbase 还是Firebird 文件,如果是,它是用哪个版本编写的?

编辑:gstat.exe -h使用 Firebird 2.5 运行的输出:

总结一下:

  • 获取 Firebird 的副本
  • gstat.exe -h从 bin 目录运行
  • 从输出中获取 ODS 版本
  • 在此处的表格中查找
0 投票
2 回答
418 浏览

delphi - 我应该使用本机 Interbase 组件从 Delphi 读取 Interbase 数据库吗

我有一个 Interbase 5.5 数据库(注意:这是一个非常旧的版本,从上个千年开始)。

到目前为止,我已经设法使用 Delphi 附带的“本机”Interbase 组件(等)连接到IBDatabaseIBQuery

似乎还有其他一些方法可以从 Delphi 连接到 Interbase。

使用这些其他方法是否有优势,或者我应该使用“本机”组件?

我的一些要求:

  • 我只需要读取权限,不需要写入权限
  • 准确性是重中之重,但速度也不错
  • 安装额外的 dll 等不是问题
  • 我正在使用德尔福 2010

在回答一些问题时:

您对 IB 组件有疑问吗?

还没有,没有。不过,我还没有做太多。

你有什么顾虑?

我主要关心的是我拥有的旧版本的数据库。我使用的组件能正确读取这么旧的数据库吗?

我只需要从旧数据库中提取数据并将其写入新格式。(即转换旧数据库)。我不需要维护旧数据库。

正确提取数据非常重要。

0 投票
1 回答
365 浏览

macos - 在 Mac OS X 上部署 Interbase ToGo

以下是实验条件:

  1. Interbase ToGo 已获得许可
  2. 包括许可证文件夹在内的 Interbase 文件夹与我的名为 myPgm.app 的多平台应用程序位于同一文件夹中,该应用程序由 Delphi XE2 作为 HD-FMX 应用程序开发。

当右键单击 myPgm.app 并从下拉菜单中选择 Show Package Contents 时,我得到以下列表:

内容

在尝试在 Mac OS XI 上运行基于 Interbase 的应用程序进行大量实验后,得出以下观察结果:

  • 如果 Interbase 组件的 DatabaseName 属性没有任何值,myPgm.app 会显示消息:“Database name is missing”</li>
  • 如果我用错误或正确的任何值填充该属性,我会收到消息:“产品 INTERBASE 未获得许可”。

按照逻辑,当服务器未嵌入时,DatabaseName 必须以 localhost: 或服务器的实际地址开头,我怀疑 Embarcadero 计划开发人员在实际 .ib 或 .gbd 文件的开头放置一些“魔术”词。

我正在寻找如何将 myPgm.app 与 myIBDb.ib 连接的解决方案,myIBDb.ib 与 myPgm.app 位于同一文件夹中。

遗憾的是 Embarcadero 出售这些 ToGo 许可证(我以 60 美元购买了一个),并且没有关于在 Mac OS X 上指定数据库的路径和名称的指南。相反,在 Win 系统上没有任何问题。