新手上路:三层结构中客户端根据参数从服务器端动态获得数据问题,诚心请教,可能问题很菜,见笑了!

lerry120 2002-11-25 03:13:36
服务器端用的是 ADOQuery 和 DataSetProvider ,客户端用的是 SocketConnection ,
ClientDataSet 和 DataSource ,数据显示用的是 DBGridEh

想要在客户端动态发送动态SQL给服务器,目前的做法是 在客户端得到参数,
设置ClientDataSet1.CommandText 的值,服务器端的 DataSetProvider poAllowCommandText
也已设成True ,现在的问题是 如果在服务器程序上的 ADOQuery SQL设成 "select * from ###"
并将其Active设成 True ,则在IE 中执行显示:Cannot perform this operation on an open dataset
错误,但如果置空 ADOQuery 的SQL属性,并将其Active设成 False ,则在客户端
得不到任何数据。看了看 李维书中的例子,好像也没怎么提到这个问题!由于是刚接触
Delphi,边学边做型的,所以有时候摸不着个头绪,请哪位给指点一下!谢了!
...全文
17 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lerry120 2002-11-25
  • 打赏
  • 举报
回复
刚刚发现 Get_UserID 和 Get_StatID 都没取到值!!这量个参数是我从ASP中传过来的,做过试验能取道的呀!是不是用错地方了?
lerry120 2002-11-25
  • 打赏
  • 举报
回复
先谢谢了

可是我就是这么写的呀
SocketConnection1.Connected := True;
ClientDataSet1.Close ;
ClientDataSet1.CommandText :='select * from ### where UserID ='+ inttostr(Get_UserID) +' and StatID ='+ inttostr(Get_StatID);
ClientDataSet1.Open ;

没错吧?就是宣布出数据来!
lerry120 2002-11-25
  • 打赏
  • 举报
回复
这点儿忙都没人帮吗?
star_of_light 2002-11-25
  • 打赏
  • 举报
回复
With ClientDataSet1 do
begin
Close;
CommandText:='Select * From ... Where ...';
Open;
end;

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧