问题标签 [firebird1.5]

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 投票
3 回答
1587 浏览

delphi - 我的带有 Firebird 1.5.6 应用程序的 Delphi 7 在 Windows 7 上闲置一段时间后自行冻结

我开发了一个 Delphi 7 应用程序,它在客户端服务器环境中使用 Firebird 1.5.6 数据库。

该应用程序在笔记本电脑上的 Windows 7 32 位计算机上运行,​​数据库在用作服务器的 Windows XP 32 位计算机上运行。问题是应用程序在闲置一段时间后会自行冻结。仅当我们将其安装在 Windows 7 上时,此问题才在 Windows XP 上从未发生过。

5 年来一切正常,但现在在 Windows 7 上,该应用程序完全不稳定。

有时唤醒时间是 10-30 秒成功但有时从来没有消息“应用程序没有响应”或“应用程序崩溃”。

我不知道在哪里搜索或尝试找到什么解决方案。我试图制作一个分辨率为 10 秒的计时器,以使其始终处于活动状态,但没有成功。

顺便说一句,我在管理员模式下运行 XP 兼容模式处于活动状态。我还没有尝试过虚拟 XP 模式,但我认为它不会解决问题。

0 投票
4 回答
6654 浏览

firebird - 无法使用 Gsec 更改 sysdba 密码

我的 windows 7 机器上安装了 firebird 1.5 超级服务器。

我无法使用 Gsec 实用程序更改默认用户的 sysdba 密码。

firebird 服务正在运行,我多次验证了这一点。

从命令提示符运行 gsec 时,我收到此错误 不可用数据库,无法打开数据库

我正在使用的命令如下gsec -user sysdba -pass masterkey -mo sysdba -pw whatever

使用 gui 管理工具,我可以毫无问题地更改密码,而且只有在我尝试直接运行 gsec 时才会出现问题。

我很感激任何建议。

0 投票
3 回答
9181 浏览

firebird - 更新生成器值问题

我目前正在修改 Firebird v. 1.5 数据库。

数据库结构将被修改从使用 interbase 组件的 delphi 应用程序运行查询,我面临的问题是我需要运行很多查询,其中一些包括创建生成器和更新生成器值,问题是我需要在尽可能少的查询中实现这一点,但似乎(至少对我而言)这实际上是不可能的,我想要做的是以下几点:

所以我创建了一个生成器,现在我需要将它的值设置为表 TABLENAME 中的当前最大 id,如下所示:

现在,是否有任何解决方法,或者我被迫:

  • 创建生成器
  • 获取最大id
  • 更新生成器值

并为每张桌子重复这个过程?

我也期待

在一个命令中从每个表中获取最大 id 是一种解决方法,但事实并非如此。

0 投票
3 回答
436 浏览

sql - 从表格中每人获得一个值(“截止日期前的每组最新 n 组”)

在我的数据库中有一个名为“预算”的表,定义如下

该表的目的是存储治疗师每个月有权休病假和正常假期的小时数。

该表具有以下值

我想编写一个查询,该查询返回每个治疗师一行,并带有最新数据(上述数据显示治疗师 36 在 2012 年 1 月至 6 月期间每月有权享受 8 小时假期,而从 2012 年 7 月开始,她是有权每月工作 10 小时)。换句话说,如果我对日期 31/01/2012 发出查询,我希望得到第 1 行和第 3 行;如果我针对日期 31/05/2012 发出查询,我希望返回第 1 行和第 4 行,如果我针对日期 31/08/2012 发出查询,我希望返回第 2 和第 4 行。

下面的查询给了我一个治疗师一行,但它给了我疾病和假期的最大值,这不一定是我想要的。

表格中是否应该有第五行

在 2012 年 8 月 31 日查询将返回疾病 = 8 和假期 = 10,即使它们都应该是 6。

我尝试了以下查询,但这仅返回一行

SO上有类似的问题,但似乎都不适用于我的情况。当然,如果我可以在没有聚合函数的情况下使用“分组依据”,但 Firebird(和大多数 DBMS)不支持这一点,生活会更轻松。

0 投票
0 回答
1255 浏览

firebird - 选择插入的“当前没有获取操作的记录”

谁能看到为什么我在下面得到“没有获取操作的当前记录”?

通过捕获而不是重新抛出下面的唯一键违规异常,我成功地跳过了重复记录。然而还有另一个错误。

过程 P_SELECT_CLAIM_FILE 包含另一个 FOR SELECT INTO 有大量的修剪和最后一个 SUSPEND 命令。这从一个固定宽度的文本文件中读取。

我很想将其更改为单个 INSERT SELECT where not exists 语句。然而,我更喜欢做一个最小的修复;假期已经到了。

0 投票
0 回答
699 浏览

character-encoding - 停止 Firebird 修改基于 Windows 字符集的字符串

我有一个使用 1.5.5 Firebird 嵌入式引擎的应用程序(用 Delphi 编写)。我正在使用这个引擎,因为该应用程序适用于当前部署的 Firebird 数据库,并且较新的嵌入式引擎无法正确打开数据库文件(ODS 10.1)。数据库中的所有字符串都定义为 VARCHAR(N),其中 N 不同。该应用程序曾经是一个 ANSI 应用程序,因此数据包含 ISO-latin-1 字符。现在应用程序已升级为 unicode 应用程序。为了将 Unicode 字符存储在现有数据库中(大约 10k 个实例),我编写了一个 UTF8-BOM(如果你可以这样称呼它),然后字符串的其余部分被认为是 UTF8 并由数据库层解码。这样我们就可以使用所有现有的数据库,并且仍然使用所有 Unicode 字符。

这适用于西欧的所有机器。但是当应用程序在罗马尼亚(具有罗马尼亚语设置的 Windows PC)中运行时:数据库引擎会更改字符。例如:UTF8 字符串以字符 octet EF (ï) 开头。数据库引擎将其返回为八位字节 69 (i)。

现有数据库如何解决这个问题?

注意:我在打开数据库(使用 UIB 库)时尝试指定字符集 OCTETS,但由于字符集未知,因此失败。

发现问题出在 UIB(本例中使用的数据库层)。UIB 处理 csNONE 的方式是,如果你给它一个字节字符串(数据类型 AnsiString),它会通过简单地将字节扩展为单词并使用当前线程代码页进一步减少它来转换为 UnicodeString。由于罗马尼亚没有使用 iso-latin-1 作为它的代码页......数据在那里被破坏了。

现在我在 UIBLib 中更改了以下例程(例如,当给出 ansistring 并且 charset 为 none 并且请求 ansistring 参数时 -> 根本不进行转换):

现在我需要检查这个行为对于库是否正确,并给维护者一个补丁。

0 投票
1 回答
325 浏览

firebird - Firebird 1.5:表中的重复列

我注意到 Firebird 为单个表创建了重复的列,因此在查询中使用了不正确的索引,导致查询速度变慢。请在下面举例。

我有 2 个具有相同列和索引的表,但是在检查表结构时,一个表显示重复的列

将表与表 C 连接并按 Birth_date 排序时,表 A 使用的是 Birth_date 索引 Ordered,但表 B 不是。

请帮忙!这背后的原因是什么?谢谢你。

0 投票
2 回答
8439 浏览

firebird - Error SQLCODE -904 in firebird after installation

I installed firebird database for the first time in my life (version 1.5.6 on Windows 7), after installation I can not connect to the sample database (employee.fdb exists), or create a database. This gives the following error in ISQL Tool:

0 投票
2 回答
251 浏览

delphi - 是否有可能两次获得发电机价值?

我们遇到了一个非常尴尬的问题。似乎某些网络或服务器错误导致前端应用程序两次获取生成器值。

是否有可能获取(和更新)生成器值保留在内存中,并且在断电的情况下,它保留在内存中不会被写入磁盘,所以当电源恢复时,它会丢失它的当前值,所以我们可以再次获得生成器值?

我们正在使用 Firebird 1.5.6、Delphi(BDE 和本地 IBExpert 组件)。

谢谢,圣诞老人

更新1:原来服务器是一些linux,如果有帮助的话......

0 投票
1 回答
218 浏览

firebird - firebirdsql psql 访问异常字符串

在 PSQL 中捕获异常后,是否可以访问异常号或字符串?在此块中,您有 SQLCODEGDSCODE,但异常字符串在哪里?