当前位置:主页>仓库管理软件> 列表

老革命遇见新问题,adoquery的问题,请大家过来看看 找管家婆进销存下载

记账软件版1楼: 在网上下了一个源码,原来用的是BED连接,现在全改为ado,但明明adoquery是打开的,但一操作就提示出错
‘cannot perform this operation on a closed dataset’



试了多种方法,不知道为什么

2楼: 没有代码,没办法帮你分析 如管家婆进销存破解版

3楼: 该信息 的意思是:不能在一个关闭的数据上执行此操作。关上查询试试。

4楼: 跟踪N久,没有发现关闭adoquery的地方,不知道什么问题,在同一事件中打开、操作此adoquery都没有问题,但一旦在其它的事件中操作,就报此错误,大家有没有遇到这个问题

5楼: 监控adoquery.active,表示一直处于激活状态,但一操作就报错,有点晕了

6楼: 肯定是那里吧数据集关掉了!

记账软件版7楼: 肯定没有,一直在监视,显示一直为true

8楼: 有总有人遇到一样的问题呀,探讨一下

9楼: 一直在监视
怎么监视的?
在源码里搜一下这个adoquery,看看哪里对它操作了,还有包含它的函数看看哪里调用了

10楼: 是不是哪里操作系统设置的问题,端口什么的

11楼: 如果是在FORM1上调用FORM2的adoquery,但FORM1又存在adoquery,结果没想到调用了FORM1上的adoquery....结果就那样了

楼主不妨把adoquery改个名字看看

12楼: 代码贴上吧 如分销

13楼: 谢谢,我一直在监视adoquery.active的值,一直为true,凡是在其它窗体内操作这个adoquery的地方我都做了断点,并没有执行到,莫名奇妙的问题,我以经快要疯掉了

记账软件版14楼: 有人在吗,帮帮忙呀

15楼: 还有一个原因,我曾经出现过,当ADOConnection的Connected意外变为False时,AdoQuery就自动Close了,所以,你最好去检查一下有没有什么代码对ADOConnection做了处理

16楼: 肯定是那里吧数据集关掉了! !

17楼: 在D5中遇到过这个问题,打死也查不出原因,后来打了补丁就OK了。

18楼: to jettop:
什么补丁?
 一切可能的原因我都试过了,真是没有办法了,连ado我都重装过了

19楼: D5不是有ADO补丁吗?我不知道你是用D?

20楼: 如果不是ADO本身的BUG,则可能是ADOQUERY真的关闭了。在复杂的应用中会有可能在别的地方关了它,只是你没有找到而已。建议在操作前加
if not adoquery1.active then adoquery1.open 试试看,若能成功则adoquery是显示地关了,不关BUG事。若还不行则让上帝保佑你吧。

记账软件版21楼: 已经在操作之前做断点,确定active为true,但一操作就出现这个问题,我快要疯了

ADO已经是2.8了,不知道什么问题

22楼: 你最好好相关代码贴上来看看 如管家婆进销存下载

23楼: 帮你顶,最好有相关代码

24楼: //在这查看quyMain1.active还为true,但一执行就报错
整个代码里面没有关闭数据集的语句

if quyMain1.Locate(''使用选项'', ''业主信息登记'', [loCaseInsensitive]) then begin
List_GLB := ListView1.Items.Add;
List_GLB.Caption := ''业主信息登记'';
List_GLB.ImageIndex := 6;
end
else begin
List_GLB := ListView1.Items.Add;
List_GLB.Caption := ''业主信息登记 [禁用]'';
List_GLB.ImageIndex := 6;
end;

25楼: 你Locate(?,?)用英文试试,也许是汉字操作有问题,我原来碰到clientdataset的汉字搜索就有问题,或者后面的区分大小写选项不用

26楼: 但相同的代码,在第一次执行时就没有问题呀

27楼: 那你跟踪到哪一行的时候出错

记账软件版28楼: OK,问题已经解决了,现在分赃

29楼: 谢谢各位,解决了,现在分赃