2013-01-02 231 views
1

我不明白如何使用參數,找到使用參數的正確示例有點困難。我確實設法使用clientdataset過濾器來完成這項工作,但我相信它也可以用sql來完成。 datasnap不允許這樣的查詢,我讀過我的研究,我必須使用參數。我只是不明白。我需要一個適當的例子,其中服務器/客戶端使用datasnap進行設置,並且可以從類似於sql的客戶端進行查詢:SELECT * FROM tbl_person WHERE person = 20Datasnap查詢客戶端

這會給我一個dbgrid中所有年齡在20歲以上的人。就像我說的我已經設法用濾波器做到這一點,但濾波器不是100%正確的一兩個奇數記錄使它出現。

您的援助將不勝感激

+0

你怎麼連ClientDataSet的服務器? – Ftaveras

回答

2

有很多方法用的ClientDataSet和參數工作。試試這個。

服務器端:

  1. 放在ServerClass的TSqlQuery並在其表單中輸入的SQL語句:

    SELECT * FROM tbl_person WHERE person = :person

    集paramenter性質的correcto paramenter類型和數據類型。

  2. 把一個TDataSetProvider,並連接到TSQLQuery

  3. 運行服務器。

客戶端:

  1. 將一個TDSProviderConnection並連接到服務器,並指定ServerClass
  2. 連接的TClientdataSet到TDSProviderConnection和選擇的TDataSetProvider名。
  3. 權的TClientdataSet並選擇FetchParams

現在你可以任意值分配給該參數的讓了DataSnap框架做休息。

檢查這些源的詳細資料:

0

設置SQL命令:

qry.SQL.Text := 'SELECT * FROM tbl_person WHERE age = :age'; 

定義參數典型值E要整型

參數設定值:

qry.ParamByName('age').AsInteger := 20; 

打開查詢:

qry.Open;