在三层的客户端怎样建立动态查询 ( 积分: 8 )

  • 主题发起人 主题发起人 坚持信念
  • 开始时间 开始时间

坚持信念

Unregistered / Unconfirmed
GUEST, unregistred user!

并不像C/S程序一样,还要在服务器层加个DataSetProvider,DataSetProvider有个ADOQuery相连,那么在客户端写ADOQuery的动态查询呢?在三层的客户端怎样建立动态查询
 

并不像C/S程序一样,还要在服务器层加个DataSetProvider,DataSetProvider有个ADOQuery相连,那么在客户端写ADOQuery的动态查询呢?在三层的客户端怎样建立动态查询
 
没有什么区别?直接提取提供者的ADOQuery
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2814119
 
ClientDataSet1.Close ;
ClientDataSet1.CommandText := SQLText ;
ClientDataSet1.Open ;
难道这样没法帮你实现你的功能吗,不行就在逻辑服务器上写个函数,在客户端层调用!
 
在应用程序服务器端需要把datasetprovider的poallowcommandtext属性设置成true
客户端用ClientDataSet1.CommandTest := SqlTest
 
在ClientDataSet 的BeforeGetRecord 中加入:
OwnerData := SQLStatement;
DataSetProvider 的 BeforeGetRecord 中加入:
IF ADOQuery.Active then
ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.OwnerData;
ADOQuery.Open;
 
在服务端将ADOQuery设置为不活动
客户端用TTStroller和yiyixin的方法
 
到我的网站上面,下载三层的网上考试系统源码看看,里面有这方面处理的例子。
www.startor.cn
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3037838
 
和单机版一样。在程序中放一个ClientDataSet1,providernaem指向服务器的provider
写过滤条件ClientDataSet1
zhtxxp:='过滤字段='+''''+条件+'''';
Filtered:=false;
Filter:=zhtxxp;
Filtered:=true;
 
接受答案了.
 
后退
顶部