在戶端執行服務端方法
DBXCmd := Frm_Main.SQLConnection1.DBXConnection.CreateCommand;
DBXCmd.CommandType := TDBXCommandTypes.DSServerMethod;
DBXCmd.Text := 'TServerMethods_Main.TreeViewChangeServer';
DBXCmd.Prepare;
DBXCmd.Parameters['ov'].Value.AsVariant := ParamsToVariant(p); //引數轉換成OleVariant
DBXCmd.ExecuteQuery;
服務器這個方法 TServerMethods_Main.TreeViewChangeServer 只執行了一條SQL陳述句
怎么在”SQL 事件探測器“ 出現兩條相同的SQL陳述句呢?
不信,在客戶端呼叫服務器的一個方法看(服務端的方法包含一條SQL陳述句),
再用 SQL 事件探測器跟蹤試下看
uj5u.com熱心網友回復:
function TServerMethods1.ReturnDSP(sql: string): OleVariant;
var
mrc: TADOQuery;
dsp: TDataSetProvider;
m:Olevariant;
begin
mrc := TADOQuery.Create(self);
mrc.Connection := ADOConnection1;
mrc.Close;
mrc.SQL.Clear;
mrc.SQL.Add(sql);
mrc.Open;
dsp := TDataSetProvider.Create(self);
dsp.DataSet := mrc;
Result := dsp.Data;
FreeAndNil(dsp);
FreeAndNil(mrc);
end;
請問執行這個服務器函式,在SQL 事件探測器會跟蹤兩條SQL陳述句,
按道理講每執行一次函式,只有一條SQL陳述句被執行,
為什么啊?
uj5u.com熱心網友回復:
不用 Result := dsp.Data; 就不會有兩條uj5u.com熱心網友回復:
mrc.open 這句不需要。在執行Result := dsp.Data這句時會自動mrc.open。
uj5u.com熱心網友回復:
在執行Result := dsp.Data這句時會自動mrc.open可以關閉自動Open嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/116054.html
標籤:網絡通信/分布式開發
上一篇:IdTCPServer IdTCPClient 雙向接發訊息已經實作 但碰到了一個很奇怪的問題
下一篇:關于購買正版Delphi的問題
