没分了,请见谅,(5分)

  • 主题发起人 主题发起人 王承武
  • 开始时间 开始时间

王承武

Unregistered / Unconfirmed
GUEST, unregistred user!
三层问题
服务器端远程数据模块有ADOConnection1,ADOQuery1,DataSetProvider1,
客户端数据模块有DCOMConnection1,ClientDataSet1,DataSource1,设置属性就不说了,请问怎么在客户端写sql语句控制服务器端远程数据模块 ADOQuery1能够把表的数据检索处理
 
你是指写查询语句还是查询
查询句直接在TClientDataSet中的CommandText属性不过要注意TDataSetProvider的poAllowComandText要为真
如果是查询则在中间层写查询语句,客户端调用:
procedure TsPower.FilterField(FilterStr: OleVariant);
var
DataSet : TADOQuery;
begin
DataSet := TADOQuery(Self.FindComponent( VarToStr(FilterStr[0]) ));
DataSet.Filter := VarToStr(FilterStr[1]);
DataSet.Filtered := DataSet.Filter <> '';
end;
DCOM1.AppServer.FilterField(Ado控件名,查询语句如:Bh='888'
 
谢谢上位大哥的回答,我是刚接触三层的,请问“服务器端远程数据模块”的ADOQuery1和”客户端数据模块“的ClientDataSet1的sql有关系吗?
 
有关系,sql语句在过程中是一种传递关系
 
请问不在“服务器端远程数据模块”的ADOQuery1写SQL,只在”客户端数据模块“的ClientDataSet1的写sql可以吗?对程序有没有影响?
 
可以直接在客户端写SQL语句,不需在服务器端写,其实如果客户端没有写SQL语句的话,在TClientDataSet打开操作时直接会去服务器中找数据,如果服务器没SQL语句就会确发异常,不过客户端和服务器端只要一端写了就可以了!
 
接受答案了.
 
后退
顶部