2015-10-26 49 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