刚才仔细看了一下VCL发现。。。。
CustomClientDataSet在执行Execute的时候其实也是把CommandText做为参数传递给服务器,
procedure TCustomClientDataSet.DoExecute(Params: OleVariant);
var
OwnerData: OleVariant;
begin
do
BeforeExecute(OwnerData);
AppServer.AS_Execute(ProviderName, CommandText, Params, OwnerData);
UnPackParams(Params, Self.Params);
do
AfterExecute(OwnerData);
end;