ado+access的问题(50分)

  • 主题发起人 主题发起人 cgzhang
  • 开始时间 开始时间
C

cgzhang

Unregistered / Unconfirmed
GUEST, unregistred user!
我在用ADO操纵ACCESS时,当数据表里面没有纪录时,关闭程序时会出现
“当前的操作需要一个当前纪录的”的错误提示,请各位高手指点。
 
你操作之前应该判断数据库的状态,if table.bof then......
 
说的不太清楚
 
没有报错啊!你把你的程序写出来看看!
 
问题分析:
根据我的经验估计,你的问题是:
1.检查一下程序中有无在此数据集记录移动时要做的操作?
2.检查一下程序中是否有OnClose等在关闭时做的操作中使用到了此数据集?
因为在直接关闭程序而不是在关闭之前将数据模块等自己手工创建的对象释放掉时,
因为Delphi会自动根据其需要将所有的创建内容释放(当然,必须是Owner值串连)
不过,这个释放顺序如果控制得不好的话,就会出现你上面所说的问题

解决办法:
解决办法需要根据情况而定,一般而言是加一些if判断。
当然,一个良好的编程习惯应该将在程序退出时,手工释放自己创建的对象
 
问题提的不清楚。
 
我的代码很简单,
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from table');
adoquery1.open;

用一个dbgrid和adoquery相连,
当表里面没有纪录时关闭主窗体
就会出现问题
但是在form.onclose加入
adoconnection1.connected:=false;
就不会出现错误
 
没有错误啊!
你试试在Form.onclose中加入
Action:=Cafree;
取代你上说的那一行试试。
 
是不是和我的操作系统有关?
我用的是 windowsxp
 
还是有问题,:(
我只用了adoconnection, adoquery, datasource和dbgrid
如果没有记录,运行程序没有问题,但关闭程序就会出现错误
。。。EADOException.....
Bof为真或者eof为真。。。
当前的操作需要一个错误纪录
 
>。。。EADOException.....Bof为真或者eof为真。。。
出这个错误可能是D5的Ado的pack没有打,下载Delphi的AdoPack2就可以了。
出你最上面的问题不知道。
 
多人接受答案了。
 
后退
顶部