delphi 6 重大bug发布!!!!!!!!

ylm163net 2002-02-22 11:20:41
bug来源于TClientDataSet,具体为
新建窗体,放置 DCOMConnection1,ClientDataSet1,DataSource1,DBGrid1
正确设置控件属性,连接COM服务器,
放置Edit1,用于写sql语句,
放置Button1在click事件中写如下代码

1. ClientDataSet1.Close;
2. ClientDataSet1.CommandText:=Edit1.Text;
3. ClientDataSet1.Open;
4. DCOMConnection1.Close;//由于COM+服务器使用了Pooling池,用于释放资源

在edit1中键入正确的sql语句,例如
select * from employee

单击Button1,显示正确查询结果

在Edit1中键入其他语句,如
select * from Department

单击Button1,显示查询结果仍为第一次查询的结果

如果将上述代码第4行注释掉,则无此问题,
但这样Com+的pooling就失去了意义

有谁知道此问题的原因,并提出解决办法,
我可捐200分可用分给他,当然也可更多,
...全文
28 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
nylp 2002-03-08
  • 打赏
  • 举报
回复
去掉4,然后在1之前加上如下:
DCOMConnection1.Close;
DCOMConnection1.Open;
(先关闭然后再连接)
ylm163net 2002-03-08
  • 打赏
  • 举报
回复
试过的,没用,只要在DCOMConnection1.Active=true时,
关闭与之相联系ClientDataSet,之后,无论DCOMConnection
的状态如何,ClientDataSet始终保持原态,这和d5中是完全不
同的

实际上,在设计时,也是如此,这个问题害我害的好惨,
d5的程序以升级为d6,退回去非常困难,实在没办法了,
现在的代码是这样的
Query:TClientDataSet;
Query:=TClientDataSet.Create;
Query.RemoteServer:=DCOMConnetion1;
Query.ProviderName:='Provider Name';
Query.CommandText:='Sql';
Query.Open;
DCOMConnection1.Close;
MyQuery.Data:=Query.Data;
Query.Free;

凭空增加了工作量
oldsteel 2002-03-08
  • 打赏
  • 举报
回复
在ClientDataSet1.Open;之前DCOMConnection1.open怎样?
xiaosanshao 2002-03-08
  • 打赏
  • 举报
回复
D6是有不少的Bug,up~~~~~~~~~~
ylm163net 2002-03-08
  • 打赏
  • 举报
回复
up
ylm163net 2002-03-08
  • 打赏
  • 举报
回复
关闭DCOMConnection1是为了释放资源,你的方法无法达到目的
ylm163net 2002-03-01
  • 打赏
  • 举报
回复
up
cz3w 2002-02-28
  • 打赏
  • 举报
回复
将4掉到1之前试一下!
  • 打赏
  • 举报
回复
ClientDataSet1.Open后没有关闭吧。
ChenAndy 2002-02-28
  • 打赏
  • 举报
回复
up
ylm163net 2002-02-28
  • 打赏
  • 举报
回复
这个问题我试过多次,发现,如果先关闭与DCOMConnection1相联系的所有ClientDataSet,再关闭DCOMConnection,也正常(但是数据是没机会看了),反之,先关闭DCOMConnectio再关闭ClientDataSet就出错

也就是说,错误的出现是与次序相关的,D5中对关闭的先后次序不敏感,
真是恼人的D6
ylm163net 2002-02-28
  • 打赏
  • 举报
回复
up
ylm163net 2002-02-26
  • 打赏
  • 举报
回复
up
outer2000 2002-02-25
  • 打赏
  • 举报
回复
up
wguoq 2002-02-25
  • 打赏
  • 举报
回复
up
长弓落日 2002-02-25
  • 打赏
  • 举报
回复
upup!
ylm163net 2002-02-25
  • 打赏
  • 举报
回复
up
INeedCa 2002-02-25
  • 打赏
  • 举报
回复
放到 news://forums.inprise.com 问问看。
ylm163net 2002-02-25
  • 打赏
  • 举报
回复
不要只up,
说句话呀
ylm163net 2002-02-23
  • 打赏
  • 举报
回复
以上代码在D5下完全正常,我把D6的最新补丁也安装了,仍然不行
加载更多回复(6)

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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