问题标签 [firebird2.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 投票
1 回答
2515 浏览

sql - 有条件地将列数据类型从浮点数转换为双精度

我重新设计了基于 Firebird 的 SQL 数据库。作为此过程的一部分,我创建了名为 HARMONICS 的新表。使用基于 GUI 的管理工具,我创建了以下列:

之后,我在新实体中插入了一些测试数据。这些更改还包括其他表格,但这些与我的问题无关,因此我不会在此处列出。然后我定制了我的应用程序以使用关系数据库的新结构。

当应用程序经过全面测试后,我增强了名为 Upgrader 的实用程序。Upgrader 的任务是在不同版本的 SQL 数据库之间进行转换。为了完成这项任务,我编写了 SQL 脚本。按照官方 Firebird 网站 ( http://firebirdsql.org/manual/migration-mssql-data-types.html ) 上的错误指南,我编写了以下命令来创建上述表格:

我认为 Firebird 数据类型“Float”是双精度浮点数(与 C 中的数据类型“double”相同)。我最终发现我错了,但这是在我创建了 Upgrader 实用程序的正式版本之后。所以现在我有两个版本的数据库在流通——一个是单精度浮点数,第二个是双精度浮点数。

我正在搜索可以检查表 HARMONICS 中列的实际数据类型的 SQL 脚本。如果这是双精度,那么脚本将什么也不做。如果这是单精度,脚本会将数据类型为“浮点”的列转换为“双精度”,同时保留所有现有数据。关键是脚本在任何一种情况下都不会返回错误。这可能吗?如果是,那怎么办?

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 回答
429 浏览

metadata - 带有 Firebrid 点网提供程序的 EF 4.3

在此处输入图像描述我安装了 EF 4.3 我收到了这个错误。

System.Data.Entity.dll 中出现“System.Data.MetadataException”类型的第一次机会异常 System.Data.Entity.dll 中出现“System.Data.MetadataException”类型的未处理异常

并继续列出数据库中的所有表....


连接字符串如下,它在 EF 4.0 上运行良好

我正在尝试一个新项目,并且没有任何命名空间问题,我相信......搜索没有帮助。任何帮助都非常感谢...

谢谢!穆图·安纳玛莱

0 投票
2 回答
3981 浏览

character-encoding - firebird bug,编译过程时字符串格式错误

简单的例子我得到错误格式错误的字符串。如何解决这个问题?我使用 Firebird 2.5,数据库中没有字符集。

我在 FlameRobin 和 isql 中尝试过,结果相同。

我使用了组名win1250。没有效果。

0 投票
2 回答
1516 浏览

sql - 为什么这个 SQL 不运行?火鸟存储过程

IBExpert 中执行以下简单查询,它工作正常:

但是,如果我创建一个带有两个输出参数的存储过程(见下文)

我收到这样的消息:

单例选择中的多行。单例选择中的多行。在程序 'SPD_SALDO_PROD_ZERADO_ESTOQUE' 行:7,col:3"

这是什么?我不明白发生了什么...

0 投票
1 回答
3728 浏览

database - 无法使用 Delphi XE2 连接到 Firebird 2.5 服务器

我已经安装了 firebird 2.5 服务器,创建了一个数据库,并希望使用 Data Explorer 与我的 Delphi XE2 建立一个连接。添加数据库详细信息、用户名和密码时,如果按下测试连接按钮,则会收到以下错误:

我不知道是否需要将 .dll 文件添加到任何特定文件夹。请我迷路了,需要帮助。

0 投票
2 回答
3941 浏览

firebird2.5 - 无法连接数据库并抛出错误

我是一个linux用户。我确实安装了 Firebird,下面的 url 有帮助。

http://www.firebirdsql.org/manual/qsg10-creating.html#d0e1325

当我尝试连接数据库时,会显示以下错误消息。

命令 isql-fb '/var/lib/firebird/2.5/data/employee.fdb' -u firebird -p 'admin'

语句失败,SQLSTATE = -902 您的用户名和密码未定义。请您的数据库管理员设置 Firebird 登录。

我怎么解决这个问题。

0 投票
1 回答
9584 浏览

delphi - 如何在 Delphi 中使用 dbExpress 将参数传递给查询

我想使用 dbExpress TSQLQuery 组件。但我不知道如何编写 SQL 来添加参数。我会举一个例子,也许它会更清楚我的问题是什么。

在 TADOQuery 中,以下工作:

现在在上面的示例中,您在参数名称前使用冒号 (:) 将参数传递给查询。但是当我尝试使用 TSQLQuery 执行此操作时,出现以下错误:

现在,如果这不是您在 TSQLQuery 组件中传递参数的方式,有人可以帮助我。这对我来说是新的领域。

我使用的是 Firebird 数据库,我使用的是 Delphi XE2

0 投票
2 回答
208 浏览

sql - 如何限制sql“group by”部分/案例中使用的第二个字段的行数,没有严格的小于或大于序列

有两个表:

我在这里只写了字段,没有生成器、触发器、键等

下一个视图选择每个日期最受欢迎的药物:

然后我将视图与自身进行左连接,并在条件下比较汇总数量:

如果每天的所有汇总数量都不同,我没有问题。我的任务是将“最佳”药物限制为每天五种,但有时会有重复的数量,所以 我得到的不是序列0、1、2、3、4 :
0、1、2、2、2、3、4 , 5例如。

如何更改查询(我宁愿不使用生成器也不使用非规范化)以真正限制行数?

所有代码都接近于纯 SQL(我希望如此)并为 Firebird 2.5 编写。

0 投票
3 回答
1356 浏览

delphi - OSX 上的 Delphi XE2 和 Firebird Embedded 2.5

我已经开始将我的 Firemonkey 应用程序移植到 OSX 中。我使用了 DBExpress 驱动程序 DevArt。我阅读这篇文章是为了将 Firebird 从服务器转换为嵌入式。

但是当我的应用程序启动时,它会引发一个异常:

无法附加到密码数据库

该数据库是从我的 Windows 安装中复制的,而不是在 OS X 上创建的。我认为这不是问题,但它在于从服务器到嵌入式的转换,因为文档是针对旧 Firebird 版本的。

你有什么想法可以解决我的问题吗?