问题标签 [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 回答
3007 浏览

stored-procedures - 错误 -104 创建 Firebird 存储过程的命令意外结束

我想在 Firebird 中创建一个存储过程:

我收到此错误:

引擎代码:335544569

引擎消息:动态 SQL 错误 SQL 错误代码 = -104 命令行意外结束 - 第 18 行,第 9 列

SQL 语句:

0 投票
2 回答
386 浏览

delphi - 在 Delphi 中实现 SQL“Where”构造的最佳方法?

我有带有字段的 Firebird DB 表(FK - ForeignKey 字段):

我想将此表加载到内存中并在我的 Delphi 程序中使用它(只读)。而且我必须按所有 FK 搜索记录(....其中 FACILITY_ID = :FACILITY_ID 和 SERVICE_ID = :SERVICE_ID 等..)

什么是该任务的最佳容器:动态数组或列表或其他东西?以及如何实现这个搜索?哈希可能吗?

它不是很大的表(1000 条记录),但将在 FOR 构造中使用超过 100000 次迭代。

我正在使用带有 IBX & UIB & FB25 的 Delphi XE2

0 投票
2 回答
2878 浏览

firebird - Firebird 中的 if 语句错误

我的表具有这种结构T_user(usern,pass,realname: varchar(50); 我是 Firebird 的初学者,我想执行以下语句,但出现此错误:

这是错误消息:

错误:IBPP::SQLException 上下文:Statement::Prepare( if (select Count(*) as cnt FROM T_USER WHERE (usern = 'test') And (pass = ']')) > 0 then select T_user.realname from t_user其中 t_user.usern = 'test' ) 消息:isc_dsql_prepare 失败

SQL 消息:-104 无效令牌

引擎代码:335544569 引擎消息:动态 SQL 错误 SQL 错误代码 = -104 令牌未知 - 第 1 行,第 1 列如果

我正在使用 Firebird 2.5 和 FlameRobin。

0 投票
3 回答
11972 浏览

firebird - 使用 isql 对 firebird 数据库运行多个插入查询

我有要求inserting enormous data in table of firebird database around 40K entries。我准备好了我的脚本,但是在使用 FlameRobin 执行它时,用户界面在一次性插入如此庞大的数据时永远挂起。

我知道如果我在 255 个查询块中执行我的插入查询会很好,但我想知道在bulk insert tool available for Firebird从我的 scripts.sql 文件中读取时是否有任何要做这样的条目。

经过一番谷歌搜索,我遇到了isql工具,但无法针对它执行脚本。有人可以指导我使用任何其他工具或适当的文档来一次性输入如此庞大的数据吗?

我已经firebird version 2.5安装在我的系统上。

0 投票
1 回答
1150 浏览

c# - 尝试在 C# 中使用 Firebird 客户端创建新的 Firebird 用户时出错

我正在尝试从我的 C# 应用程序为 Firebird 2.5 DB 创建新的 DB 用户,并收到错误“添加记录错误无权限插入/写入表用户”。我已向用户授予 rdb$admin 角色,使用此角色创建了与 DB 的连接,但我仍然收到此错误。对我来说最奇怪的是,当我尝试使用相同的用户设置和角色(rdb$admin)在 IBExpert 中为我的数据库创建新用户时,它运行良好并且我没有遇到任何错误。

可能是什么问题呢?为什么我不能执行在 USERS 表中更新/插入的 SQL 查询和过程,尽管我有适当的角色,我正在使用建立连接?

我正在使用最新的 FirebirdClient - ADO.NET 数据提供程序。

到 DB 的连接字符串如下所示:

有人可以帮我解决这个问题吗?

0 投票
1 回答
477 浏览

delphi - Delphi2009、IBX 和带有 utf8 的 firebird 给出除以零错误

我将 Delphi 2009 与 firebird 2.5 和 IBXpres 一起使用,我得到“除以零”错误。

firebird 的数据库是用 charsetUTF8和collat​​ion 创建的UNICODE_CI

我已经修改了 IBSQL.pas,重新编译了 ibxpress120.bpl,并且在设计时一切正常。这是修复的链接

问题是当我打开我的数据集时,我仍然在运行时收到错误:

如果我使用UNICODE_FSS字符集,一切正常,但我不能将排序规则设置为“不区分大小写”

任何我不知道的解决方法?

0 投票
1 回答
128 浏览

sql - 存储过程中sql命令的不同行为

源表 TEST(摘录)。括号中的值确定日期类型:

有问题的 SQL 命令是这样的:

如果我从开源工具 FlameRobin 的命令行执行此命令

在此处输入图像描述

更新后的表格如下所示

如果我从存储过程(从 FlameRobin 或我自己使用 BDE(Borland 数据库引擎)组件的应用程序)运行相同的命令,结果是这样的

有趣的是,SAMPLES 和 NSAMPLES 两列都具有相同的日期类型、相同的源值 (= 10.000000) 并且都可以为空。为什么从存储过程调用的复制命令不复制 NSAMPLES 列的值?取而代之的是,它将 NULL 值插入到新记录中。

添加 16.11.2012

也许可以在数据库管理工具 FlameRobin 的以下屏幕截图中找到一些提示。它们包含存储过程 INSERT_TEST 和表 TEST 的完整定义。

在此处输入图像描述

在此处输入图像描述

为什么字段列表中缺少 NSAMPLES 列???

在此处输入图像描述

0 投票
2 回答
844 浏览

entity-framework - 实体框架代码优先 - 复合主键上的导航属性

  • 火鸟 2.5
  • 实体框架 5
  • 火鸟客户端DLL 3.0.0.0

嗨,我正在尝试使用实体框架(代码优先)访问我的旧数据库。我遇到了数据库不使用外键的问题......

通常我可以CUSTOMERID从类中删除该属性INVOICES,但在这种情况下它是主键的一部分......

我发现了许多建议使用的线程IsIndependent,但它似乎已从 Entity Framework 5 (或 4.1)中删除。

我希望你能理解我糟糕的英语,也许给我一个提示我做错了什么^^

0 投票
1 回答
588 浏览

firebird - 如何将排序规则 UNICODE_CI/_AI 添加到旧数据库

我有一个在 Firebird 2.5 服务器上运行的旧数据库,它缺少排序规则 UNICODE_AI 和 UNICODE_CI。元表上的直接选择表明了这一点。

返回 UNICODE、UNICODE_FSS、UTF8 和 UCS_BASIC。

如何将这些排序规则添加到我当前的数据库中?

0 投票
3 回答
16758 浏览

firebird - Firebird 2.5 数据库恢复使用 gbak 和 fix_fss_data 返回格式错误的字符串

我有一个旧数据库,我想将其转换为 Firebird 2.5。在包含众所周知的问题“gbak:错误:格式错误的字符串 gbak:检测到无效数据”的表上还原包含 blob 文本字段的数据时会出现问题

执行的步骤:

  1. gfix -user SYSDBA -password masterkey f:\dbb.db -shut -force 0
  2. gfix -v -full -user SYSDBA -password masterkey f:\dbb.db
  3. gbak -v -t -g -ig -user SYSDBA -YF:\backup.log -password "masterkey" f:\dbb.db F:\dbb1.db
  4. gbak -r -v -o -p 16384 -YF:\log.txt -user SYSDBA -password masterkey "f:\dbb1.db" "f:\new.db" -fix_fss_data win1251 -rep

用 win1252,utf8 或 unicode_fss 替换字符集并不能解决问题。

我还尝试使用 InterBase Data Pump 3.4 版迁移数据。

脚步:

  1. 备份元表
  2. 在新数据库上恢复元表
  3. 使用 InterBase 数据泵迁移数据

遇到错误“格式错误的字符串”。

所有发生错误的表都有一个类型为“BLOB SUB_TYPE 1 SEGMENT SIZE 80”的字段

我怀疑一开始数据库的字符集是 WIN1252。之后,有人将字符集更改为 UTF8,并将字符集和整理的所有字段定义从 WIN1252 更改为 UTF8。否则我不明白为什么会收到这些格式错误的字符串错误。另外,我知道这个问题在 FireBird 2.0 到 FireBird 2.5 的迁移中很常见。

有人知道如何解决这个问题吗?