2011-05-13 28 views
0

備忘錄的內容,我有一個備忘錄很長的SQL命令的列表中,當我試着執行它時,我得到以下錯誤:執行一個TADOQuery

參數對象定義不正確。提供了不一致或不完整的信息。

的代碼來執行它:

Query.SQL.Text := Memo1.Lines.Text; 
Query.ExecSQL; 

我的錯誤是由於添加了查詢內容的方式造成一個模糊的想法,所以,這裏是我現在怎麼做:

1)Memo1.Lines.LoadFromFile('Patch.sql');

2)前往查詢命令

正如你所看到的,備忘錄的內容是從文件加載。有沒有其他辦法可以成功地做到這一點?

P.S .:我正在使用Microsoft SQL 2008.

謝謝!

+2

你可以通過完全省略它來很容易地確定備忘錄控件是否與問題相關:'Query.SQL.LoadFromFile('Patch.sql')'。你仍然得到同樣的錯誤?如果是這樣,那麼你的SQL是不好的。如果沒有,那麼關於備忘錄有一些東西。 – 2011-05-13 19:44:38

+0

我希望這是一種有限曝光的內部開發工具,因爲這聽起來像是一個等待發生的SQL注入攻擊。 – 2012-08-31 17:30:11

回答

3

它看起來像你不使用的參數,所以設置ParamCheck關閉

Query.ParamCheck := false; 

如果有一個冒號「:」在SQL字符串,則TADOQuery認爲它是一個參數