2012-06-20 151 views
4

我想使用dbExpress TSQLQuery組件。但我不知道如何編寫SQL來添加參數。我會舉一個例子,可能會更清楚我的問題是什麼。如何將參數傳遞給在Delphi中使用dbExpress的查詢

在TADOQuery了以下工作:

SELECT* 
FROM sometable 
WHERE sometable.id = :value; 

現在在上面的例子中,你傳遞參數使用冒號(:)之前的參數名稱查詢。但是,當我嘗試這樣做,與TSQLQuery,我得到以下錯誤:

dbExpress driver does not support the TDBXTypes.UNKNOWN data type. Vendor Error Message. 

現在,如果這是不是您在TSQLQuery組件傳遞參數的方式,有人可以幫助我。對我來說這是一個新領域。使用

我是個Firebird數據庫,並採用Delphi XE2

回答

8

要設置參數的屬性,你必須使用Params財產林。從這裏,您可以使用索引或名稱訪問每個參數,使用propertiesAsString,AsInteger之一來設置參數的值,取決於該字段的類型。

檢查該樣本

var 
    LSQLQuery : TSQLQuery; 
begin 
    LSQLQuery:=TSQLQuery.Create(nil); 
    try 
    LSQLQuery.SQLConnection:=SQLConnection1; 
    LSQLQuery.CommandText:='Select FIRST_NAME from EMPLOYEE Where EMP_NO=:Param1'; 
    LSQLQuery.Params.ParamByName('Param1').AsInteger:=2;//or using the index of the parameter LSQLQuery.Params[0].AsInteger:=2; 
    LSQLQuery.Open;//Execute the query 
    ShowMessage(LSQLQuery.FieldByName('FIRST_NAME').AsString); //get the data 
    LSQLQuery.Close; 
    finally 
    LSQLQuery.Free; 
    end; 
end; 
相關問題