我正在使用 Delphi 7 和 Firebird 2.0。在我的应用程序中,我使用的是 TIBScript 组件。当我在脚本中使用局部变量时会出现问题。在某些情况下,Firebird 要求局部变量的名称前面有一个冒号。这就是问题所在。应用程序停止显示错误消息:
动态 SQL 错误 SQL 错误代码 = -104 令牌未知 - 第 4 行,第 66 列 ?
有问题的标记是冒号。这是我的脚本的样子:
SET TERM ^ ;
EXECUTE BLOCK AS
DECLARE test_variable INT;
BEGIN
SELECT tt.id FROM test_table tt WHERE tt.name LIKE 'abc%' INTO :test_variable;
INSERT INTO test_table2(id, test_column)
VALUES(1, :test_variable);
INSERT INTO test_table3(id, test_column)
VALUES(1, :test_variable);
...
END^
SET TERM ; ^
从 IBExpert 运行时,相同的脚本执行时不会出现任何错误。
如何在 TIBScript 中使用局部变量?任何帮助,将不胜感激!
我想补充一点,这个问题只发生在 EXECUTE BLOCK 构造中的变量上。存储过程和触发器定义中的局部变量没有问题。