delphi不有例子吗?用ClientDataSet发送就行.
begin
{ Send the query string to the server and open the client dataset }
ClientData.Close;
ClientData.CommandText := Memo1.Lines.Text;{The SQL statement}
ClientData.Open;
end;
begin
{ Send the query string to the server and open the client dataset }
ClientData.Close;
ClientData.CommandText := Memo1.Lines.Text;{The SQL statement}
ClientData.Open;
end;
查询其他表.唯一的办法是发送查询命令到服务端的Tdataset使服务端提供的表改变.
把服务端的一个与TQuery相连的TDataSetProvider的Options的poAllowCommandText设上。再如heifei()兄所言,将的你的SQL语句放在与那个DataSetProvider相连的ClientDataSet的CommandText属性里,再OPEN那个CLIENTDATASET即可,就跟把SQL直接放到TQUERY里一样,不过有用参数的话会有不同。需要在CLIENTDATASET里手工加上参数
如果你只是要查询其他表何必这么麻烦,要传参呢:
ClientData.CommandText := 'select * from '+TableName;
不就行了吗?
ClientDataSet1.CommandText := 'SELECT * FROM '+''+TableName+'';ClientDataSet1.Open;
改变。比较好的方法是在中间层定义方法或函数,实现种种你所要的功能,然后在客户端
调用这个方法,最后更新数据就行了。
如: ClientDataSet1.Close;
MainForm.DcomConnection.Appserver.ExeSql_Exmple; //调用方法
ClientDataSet1.Open;
通过这种方式,可以很方便地维护程序。
并且经过个人测试,使用CommandText与调用方法的执行速度是一样的。
请问既然速度一样为什么还要用服务器程序的方法呢?会不会多此一举?