DATABASE(50分)

  • 主题发起人 主题发起人 ydnhxh
  • 开始时间 开始时间
Y

ydnhxh

Unregistered / Unconfirmed
GUEST, unregistred user!
cannot perform an operation on an open database;
 
具体一点。
 
好像是:database有另一个程序使用。
 
操作前先将数据集关闭
如:

AdoQuery.Close; //here ......
AdoQuery.Sql.Clear;
AdoQuery.Sql.Add('....');
AdoQuery.Open;
 
restart your computer!
 
同意 萧月禾 的看法,可能是您在对TDatabase和数据集设置时未断开连接!
 
可能是你将要TQuery的SQL改变时没有将TQuery关闭就想打开,方法:将Active设为False,
也可先CLOSE。
 
如果先将TQUERY的ACTIVE设置为FALSE还不行的话,你试试将DELPHI关闭或重新启动
计算机,再重新编译看看,我好象有过这样的经历,是否相同就不得而知了.
 
你是不是在一个TDatabase组件Open以后想修改它的参数?
如果是这样的话,就会出现前面所述的错误,在修改参数之前必须把TDatabase关闭。
 
或者你应该装上delphi的那几个补丁。
 
我用ADO控件没碰到过这样的问题。用BDE时碰到过同样情况,没有对程序进行改动,只是
改用ODBC连接数据库该问题消失。估计可能是DELPHI的BUG。建议你先试着将数据库用ODBC
连接试一试
 
这是你在对session,或database component操作时造成的, 举例:
database.Connected := False; //(如没有这一句就会出错)
database.AliasName := tblInput_DATABASE.Value;
database.Connected := True;
 
以上都有一定的道理,本人也有过,一般是用相同的query是,一个处于OPEN中,
又来OPEN或EXECSQL;最好QUERY.CLOSE
 
同意刘忠平的看发,每次用到QUERY时,先QUERY。CLOSE
或者在放一个QUERY,也可以
 
你肯定是没有先CLOSE了,象萧月禾所说的那样
 
我也碰到过
设计时在Delphi的连接控件中打开了对该数据库的连接,在程序中又一次打开连接,
就会产生这样的错误。
解决方法是要么只在设计时使连接控件的连接属性为true,要么只在程序中打开连接
 
接受答案了.
 

Similar threads

后退
顶部