天天看點

[轉載紅魚兒]kbmmw 開發點滴:kbmMW 命名查詢(Named Query)

所謂命名查詢(Named Query),指用戶端的Query通過指定的名稱,使用伺服器端的Query操作(查、增、删、改)資料庫。通過Named Query機制,實作事先在伺服器端設定好SQL,達到在用戶端不用寫SQL的目的,同時,我們隻需要将QueryService的AllowClientNamedQuery設定為True。

看一下具體的使用:

伺服器端放一個kbmMWUniDACQuery:

with kbmMWUniDACQuery do begin

 Name:='T1';//用戶端在SQL中調用的名稱

 Published:=True;//用戶端可見,不然出Query xxx not defined(Server)錯誤.

 KeyFieldNames:='F1';//支援用戶端增、删、改

 TableName:='T1';//支援用戶端增、删、改

 SQL.Text:='Select * from T1 where F1<=:F1';//伺服器端的SQL,這裡做了一個參數F1,支援用戶端按參數查詢

 Resolver:=kbmMWUNIDACResolver1;

 ConnectionPool:=Form1.kbmMWUNIDACConnectionPool1;

end;

用戶端調用方法:

procedure TForm2.Button1Click(Sender: TObject);

begin

//這是直接SQL調用的方法

//  kbmMWClientQuery1.Close;

//  kbmMWClientQuery1.Query.Clear;

//  kbmMWClientQuery1.Query.Add('Select * from

T1');

//  kbmMWClientQuery1.Open;

//這是Named Query方法:

  kbmMWClientQuery1.Close;

kbmmWClientQuery1.Query.Text:='@T1';//T1,在伺服器端定義的查詢元件的Name屬性

kbmMWClientQuery1.FieldDefs.Update;//取得伺服器SQL中的參數

kbmMWClientQuery1.Params.ParamByName('F1').AsInteger:=5;

  kbmMWClientQuery1.Open;

通過上面的代碼,用戶端能夠通過伺服器實作對一個表的操作了!

[轉載紅魚兒]kbmmw 開發點滴:kbmMW 命名查詢(Named Query)
[轉載紅魚兒]kbmmw 開發點滴:kbmMW 命名查詢(Named Query)