我们正在将SQL Manager用于interbase-firebird和Firebird 3.0.5。我们正在创建一个程序,并且运行良好。
然而,从我们向过程中添加psql变量的那一刻起,我们得到了以下错误。当我们删除变量时,可以再次执行该过程。在已添加的变量下面(也请参见下图)。
Declare variable ikke integer;
错误消息说:
不允许在程序上使用授予的选项。
详细的错误信息说:
对“文本”的引用,使包含许可选项的GETTEXT程序;
因此似乎通过使用psql变量,添加了表“ TEXT”对存储过程的引用,并且显然不允许。
所以,听起来像是许可的东西。但是,当我们向过程授予权限时,参考区域将显示为灰色,因此我们无法像在执行级别上一样授予权限。
而且,如果我们在表文本上查看权限级别,则会给出参考权限,但是无法添加“带有授权的权限”(手形图标)。
我不知道问题是什么以及如何解决,有什么想法吗?
UPDATE 27/02/2012如果我将相同的代码添加到执行块中,则效果很好。有什么想法吗?
execute block
RETURNS(ID BIGINT, TEXTNAME VARCHAR(1000))
AS
DECLARE ikke VARCHAR(50);
BEGIN
Id = 0;
Textname = '';
ikke = '%a%';
FOR
SELECT "ID", "enUS" FROM "Text" WHERE "enUS" like :ikke INTO :Id, :Textname
DO
BEGIN
SUSPEND;
END
END;
在错误的一些其他打印屏幕下面。
因此,当我添加psql变量时,尚不清楚为什么会自动授予“特权”,但是当我在编译弹出窗口中取消选中授予的许可权,然后执行回滚/重新编译时,它会起作用。