我正在嘗試使用帶有ADO的參數化查詢。執行Command
對象拋出錯誤:「必須聲明變量@myvariable」錯誤與ADO參數化查詢
Must declare the variable '@filename'
我宣佈使用CreateParameter/Append
參數@filename
:
sql := 'INSERT INTO Sqm(Filename, data) VALUES(@filename, @data)';
command := CoCommand.Create;
command.Set_ActiveConnection(Connection.ConnectionObject);
command.Set_CommandText(sql);
command.Set_CommandType(adCmdText);
command.Parameters.Append(Command.CreateParameter('@filename', adLongVarWChar, adParamInput, -1, Filename));
command.Parameters.Append(Command.CreateParameter('@data', adLongVarWChar, adParamInput, -1, xml);
command.Execute({out}recordsAffected, EmptyParam, adCmdText or adExecuteNoRecords);
我到底做錯了什麼?
試着用':',而不是'@'在查詢中PARAMS之前。並從添加參數的位置刪除@。 –
@MikaelEriksson:*第一行:'''附近語法不正確*您會感到驚訝,我當然是,沒有人發佈過ADO參數化查詢的例子。 (可以在ADO.NET中找到很多) –
看起來您直接使用ado接口而不是tadocommand。在查詢中使用'?'嘗試放置變量名'values(?,?)'。我離計算機有幾個小時的路程,所以我無法驗證它會工作。 –