是哪里出了错─miads的入门级问题??

xxy1898 2001-12-15 07:04:40
我照着李维《分布式多层应用系统篇》第二章中的DynamicSQLDemo例子(全部在单机上测试):
服务器:adoconnection1+adoquery1(不写sql语句)+DataSetProvider1(poAllowCommandText设为true)
客户端:DCOMConnection1+ClientDataSet1
想在客户端动态执行sql语句
with ClientDataSet1 do
begin
close;
CommandText:=mysql //最基本的sql语句
open;
end;
不管我是在win98还是在win2000下运行客户端程序,都会出现如下错误提示:bof或eof有一个为真,或者当前记录已被删除,所须操作要求一个当前记录。
我开始以为是ado的bug,连忙打了delphi5的三个升级包,重新编译后执行,错误却仍然存在!!!
走投无路的我只好把服务器程序换为Database1+Query1,同样连上sql7中的pubs,程序居然可以成功运行了!!请问大家到底是哪里出了错,ado的bug,还是程序有问题???
...全文
142 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxy1898 2001-12-18
  • 打赏
  • 举报
回复
to Raptor(猛禽):
真的不要ADO upgrade1吗???你的说法我可是第一次听到呀:]

谢谢各位的回答,我在win98中重装d5和sql7.0后,并打上补丁:Enterprise Update1,ADO upgrade1,ADO upgrade2,问题居然解决了!!

但在win2000+d5(按以上方法打补丁)+sql 2000问题还是存在!
我估计可能是d5对sql 2000的支持不好造成的,不知大家是否遇到过类似的经历??

w98q98y98 2001-12-17
  • 打赏
  • 举报
回复
我也遇见过类似问题,与MIDS一点关系也没有,ADO的问题,不信你可以简单建一个ADOQUERY然后SELECT * FROM TABLE WHERE 1=2,或ADOTABLE选取一个空的表,提示就是你说的那样。
w98q98y98 2001-12-17
  • 打赏
  • 举报
回复
我也遇见过类似问题,与MIDS一点关系也没有,ADO的问题,不信你可以简单建一个ADOQUERY然后SELECT * FROM TABLE WHERE 1=2,或ADOTABLE选取一个空的表,提示就是你说的那样。
w98q98y98 2001-12-17
  • 打赏
  • 举报
回复
我也遇见过类似问题,与MIDS
风轻狂 2001-12-17
  • 打赏
  • 举报
回复
李维那三本书上的BUG是不少,有些很明显,很代级
接口的例子:
服务端
procedure TTestRMDataModule.Open(var vStrSQL: OleVariant);
begin
ADODataset.Close ;
ADODataset.CommandText := vStrSQL ;
ADODataset.Open ;
end;
客户端
ClientDataSet.Close;
DCOMConnection.AppServer.Open('Select * from TestTable');
ClientDataSet.Open ;
猛禽 2001-12-16
  • 打赏
  • 举报
回复
这就是你的不对了,ADO Update1仅供Professional版用,如果用它打到Enterprise版上可能会有问题。Enterprise只要打Enterprise Update1和ADO Update2即可
xxy1898 2001-12-15
  • 打赏
  • 举报
回复
csdn好像出问题了,贴子怎么不能提前了????
xxy1898 2001-12-15
  • 打赏
  • 举报
回复
help!!!
xxy1898 2001-12-15
  • 打赏
  • 举报
回复
我也这么想,李维的书不可能而这么低级的bug,
但我在win98和win2000中都试过了,出的错误是相同的!
我的打包顺序如下:
企业版补丁,
ADO upgrade1,
ADO upgrade2,
继续等待大家的发言:]
猛禽 2001-12-15
  • 打赏
  • 举报
回复
肯定慢ADO的BUG,你补丁没打好,我一直这样用,从来没有问题
xxy1898 2001-12-15
  • 打赏
  • 举报
回复
to galeboy(狂风小子):
我是刚接触midas,能不能把结口过程的代码贴上???谢谢先了:]
可李维的书怎么会有这样低级的错误?
风轻狂 2001-12-15
  • 打赏
  • 举报
回复
用Ado的话最好在服务端加个结口过程
把Sql语句传到服务端

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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