奇怪的问题:关于手动关闭ADO数据库的问题! (100分)

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

yeah007

Unregistered / Unconfirmed
GUEST, unregistred user!
我在对数据库进行关闭操作时,遇到以下奇怪的问题:
//adoc:TADOCONNECTION
adoc.open;
////进行其他操作
IF ADOC.connected then adoc.close;//有问题
//进行其他操作
if not ADOC.connected then
begin
//设置ADO参数
adoc.open;
end;
//继续其他操作

假如去掉 “IF ADOC.connected then adoc.close”这一句,则正常运行
否则出错,用ADOQUERY取不出数据来

初步分析是数据还没有真正关闭,程序就开始执行下面的语句,所以出错!
假如是这样,那怎样保证完全关闭呢?
如果不是这样,那又是什么问题呢?
各位赐教!

 
没人知道?
 
哪里下载?
 
我试了,没问题啊??
 
我这里就有问题啊,你切换不同的连接试试!
我是想在不同的数据库之间切换连接,该如何才好呢?
 
这样试试
IF ADOC.connected then ADOC.connected :=false
 
要按yanghai0437说的做。
 
"IF ADOC.connected then ADOC.connected :=false"
试过了!不行的!
Connected:=True 或者ADOC.OPEN等属性或过程本身是没问题的,只是先打开A数据库,然后关闭A数据库,再打开B数据库时,下面再查询B数据库就出现问题了!
难道你连B数据库时不需要先关闭A数据库吗?
 
connectstring语句变了吗
 
connectstring是重新设置过的!
不行!
我现在想是有没有办法检测数据库是否真正关闭,等检测到真正关闭后才开始下一个连接,否则一直检测!
那如何知道数据库真正是关闭的呢?
 
你的代码我试过,没问题,请找其他原因,
检测数据库是否连接的方法一:采用sql数据库,打开关闭连接,然后在数据库中检测连接数
select * from master.dbo.sysprocesses
 
问题是有多种数据库存在,所以你的方法行不通的!
代码本身是没问题的!
 
类似的问题的确存在, 用ADO连接数据库时, 设置connected为false是不起作用的
要是解决了请通知我!
 
后退
顶部