這是我第一次用參數做查詢。 (在SQL Server用Delphi西雅圖和FireDAC)爲什麼FireDAC SQL Server查詢參數失敗?
(我打算使用DML一旦我得到這個工作)
爲什麼我收到此錯誤:
[FireDAC][Phys][ODBC][Microsoft][SQL Server Native Client 11.0]
[SQL Server]Incorrect syntax near ':'.
與此查詢:
procedure TForm2.Button1Click(Sender: TObject);
var
FDParam: TFDParam;
begin
FDQuery1.SQL.Text := 'CREATE TABLE TestTable (Column1 Int)';
FDQuery1.ExecSQL;
FDQuery1.SQL.Text := 'INSERT INTO TestTable (Column1) VALUES (111)';
FDQuery1.ExecSQL; // works fine
FDParam := FDQuery1.Params.Add;
FDParam.Name := 'Column1';
FDParam.DataType := ftInteger;
FDParam.Paramtype := ptInput;
FDQuery1.SQL.Text := 'INSERT INTO TestTable (Column1) VALUES(:Column1)' ;
FDQuery1.ParamByName('Column1').AsInteger := 222;
FDQuery1.ExecSQL; // FAILS
end;
評論創建參數並再次運行的代碼。錯誤消失了嗎?大多數數據庫驅動程序會解析SQL並自動創建參數,並使用'AsXXXX'來處理參數類型。我從來沒有必須在使用Delphi的任何數據庫組件的代碼中創建參數。 –
我已經在我的筆記本電腦上運行上面的代碼,使用一個非常古老的SQL Server 7 **和** SQL Server 2000,並且都運行完美。 – Johan