2015-10-26 55 views
0

执行SQL DDL与ibscript我有一个问题有关运行脚本在运行时

IBScript := TIBScript.Create(nil); 
IBScript.Database := FDM_DB.IBD_GCV; 
IBScript.Transaction := FDM_DB.IBT_GCV; 
IBScript.Terminator := ';'; 
IBScript.AutoDDL:=true; 
IBScript.Script.Clear; 
IBScript.Script.Add('GRANT INSERT, UPDATE ON ' + table_name + ' TO ' + user + ' ;'); 
IBScript.ExecuteScript; 
IBScript.Transaction.CommitRetaining; 

强textit我就会显示此消息

“动态SQL错误SQL错误代码= -104令牌未知 - 线1, 栏43至'。

预先感谢您

+0

什么是结果SQL字符串?我建议你分别构建它并记录或打印它。 –

回答

1

你只有

GRANT INSERT, UPDATE ON ' + table_name + ' TO ' + user + ; 

SQL。

因此,检查'table_name'变量值。 发生此错误时:

table_name = '';//(empty string)

+0

非我有正确的价值通过调试thenx'授予插入,更新接待KOVAROV; ' – kovarov

+0

我用'table_name:='RECEPTION''测试过。效果很好。 –

+0

在这两种情况下都能正常工作,但在IBScript.Transaction.CommitRetaining之后我收到了错误消息; – kovarov