问题标签 [firebird-psql]

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

sql - TIBScript 和局部变量

我正在使用 Delphi 7 和 Firebird 2.0。在我的应用程序中,我使用的是 TIBScript 组件。当我在脚本中使用局部变量时会出现问题。在某些情况下,Firebird 要求局部变量的名称前面有一个冒号。这就是问题所在。应用程序停止显示错误消息:

有问题的标记是冒号。这是我的脚本的样子:

从 IBExpert 运行时,相同的脚本执行时不会出现任何错误。

如何在 TIBScript 中使用局部变量?任何帮助,将不胜感激!

我想补充一点,这个问题只发生在 EXECUTE BLOCK 构造中的变量上。存储过程和触发器定义中的局部变量没有问题。

0 投票
1 回答
82 浏览

sql - 当表不存在时如何跳过/继续删除语句?

我想编写可用于具有相似结构的多个数据库的执行块,有些数据库没有 1 个或多个表。我用这样的东西

这适用于所有表的基础,但是当表丢失时,执行块停止。我想在缺少表时使用此执行块,因此我不必提交缺少的表。

0 投票
1 回答
273 浏览

firebird - 过程返回 True 或 False

我需要 firebird 3.0 中的存储过程来返回 True、False 或 1,0 结果以检查此人或记录是否存在于数据库中。如果存在该过程应该返回true,如果不返回False,或者返回1,如果不返回0

这是我的程序,但它给了我一个错误: https://i.ibb.co/HLZQY59/Capture.jpg

令牌无效。
动态 SQL 错误。
SQL 错误代码 = -104
令牌未知 - 第 10 行,第 1 列。
结束。

我想通过检查名字姓氏和出生日期来检查记录是否存在。

0 投票
1 回答
149 浏览

firebird - 我需要在 firebird 2.5 的触发器中动态插入新旧字段名称和值

我可以动态插入表列名问题是当我想在我的日志表中插入新值或旧值时,我得到一个字符串'old.Colname'或'new.Colname'而不是旧值或新值。

这是我的日志表的屏幕截图,我想插入旧值和新值,但列名被插入为字符串 在此处输入图像描述

0 投票
1 回答
139 浏览

sql - 是否可以联合两个 EXECUTE BLOCK 语句?

有没有办法执行 2 个集合的并集,其中两个集合都是由 2 个不同的执行块命令输出的?

集合结构相同,但每个都包含不同的参数,因此我无法轻松地将两者合并到一个执行块命令中。

例如

0 投票
2 回答
335 浏览

sql - Firebird 存储过程中可变数量的参数

我有以下存储过程:

在 select 语句中,我有以下三个帐户:

  • 71212
  • 71211
  • 83791

理想情况下,我想更改存储过程,以便能够输入帐号作为参数的一部分。挑战在于帐户数量可能会发生变化。是否可以使用字符串作为参数?我该怎么做呢?

0 投票
1 回答
38 浏览

firebird - 更新行时是否更新游标变量?

在下面的代码(存储过程体)中,游标字段的值是否在UPDATE后自动更新?如果不是,关闭/打开命令是否足够?

我没有找到任何包含此内容的描述,它只是所有这些中的 FOR SELECT 游标。

0 投票
2 回答
74 浏览

triggers - 如何使用更新触发器获取主表中明细表字段的总和

Firebird 3.0 数据库中有主表“factgad”和详细表“recgad”。

factgad : factgad_k(pr_k)...

recgad : recgad_k(pr_k), factgad_k(fk)...

在此处输入图像描述

当我更新主表时,我必须获取明细表记录的总和,但我无法编写正确的代码。当我尝试更新主表时,出现错误:

触发 SQL 有什么问题?我尝试更改 where 子句where f.factgad_k=new.factgad_kwhere f.factgad_k=43但出现相同的错误。重新启动 Firebird 服务没有任何改变。

奇怪的行为,更新触发器后出现相同的错误,它在更新详细表后用详细表的总和更新主表:

0 投票
0 回答
58 浏览

triggers - 为 Firebird 触发 SQL Server

我有一个 SQL Server 触发器,我尝试将其转换为 Firebird,但似乎遇到了一些问题。

这是我的 SQL 触发器:

我真的很难为 Firebird 复制相同的内容。

谁能帮助我。

0 投票
0 回答
108 浏览

sql - 将 SQL Server 代码转换为 Firebird 会产生“令牌未知”错误

我有可用的 SQL Server 代码,但无论我多么努力,我都无法将其转换为 Firebird。在这件事上我需要你的帮助。SQL Server 和 Firebird 所有的表都是一样的,数据类型也是一样的。

SQL Server 数据库

SQL Server“STOK_FIYAT”表设计

SQL 服务器

SQL Server“STOK_FIYAT”表数据

SQL 服务器

SQL Server“STOK”表设计

SQL 服务器

SQL Server“STOK”表数据

SQL 服务器

我的查询字符串:

SQL 输出:

SQL Server 输出

我必须为 Firebird 做所有的操作。

火鸟数据库:

火鸟“STOK”表设计

火鸟

火鸟“STOK_FIYAT”表设计

火鸟

我对火鸟没有经验。我自己尝试的代码:

我得到的错误: