萧
萧月禾
Unregistered / Unconfirmed
GUEST, unregistred user!
设有一个数据库应用软件程序,使用TADOConnection连接到业务数据库中
,其中有一个模块执行对数据库的备份和恢复,通过执行sql语句来实现操作。
备份还没问题,但恢复的时候,因为要求是要备份的数据库没有被使用,
所以在恢复操作的时候,要把当前的数据库连接关闭,通过另一个
TADOConnection连接到Master数据库上,执行sql语句“RESTORE DATABASE
MyDataBase FROM DISK = 'D:/Bak20020524.Dat'”,来实现备份还原。
错误提示:
"Exclusive access could not be obtained because the database is in use"
原因是尚有连接到该数据库的连接未断开,而这个连接正是我的程序中连接业务
数据库的TADOConnection。
我尝试在还原备份之前,同时用几种方法将连接关闭
1、将其Connected属性设为false
2、把KeepConnection设为false
3、把ConnectionString的值保存到一个字符串变量中再将它设为''
4、设置把这个连接业务数据库的ConnectionString改为连接到Master数据库并打开
然后执行备份的数据还原,仍然提示相同的错误。
最后,直到我在程序中把这个业务连接TADOConnection给Free掉,创建另一个
TADOConnection连到Master数据库中才行。
但这样就带来了极大的不便,因为执行了备份还原后还要继续运行系统,业务连接
还是要重新打开的。不太明白TADOConnection的连接机制,它究竟是根据什么来保持
这样的数据库连接的呢?有什么办法能把业务数据库的连接暂时关闭,过后再重新
打开?不知道大家有没有遇到过类似的情况?该如何处理较好?
,其中有一个模块执行对数据库的备份和恢复,通过执行sql语句来实现操作。
备份还没问题,但恢复的时候,因为要求是要备份的数据库没有被使用,
所以在恢复操作的时候,要把当前的数据库连接关闭,通过另一个
TADOConnection连接到Master数据库上,执行sql语句“RESTORE DATABASE
MyDataBase FROM DISK = 'D:/Bak20020524.Dat'”,来实现备份还原。
错误提示:
"Exclusive access could not be obtained because the database is in use"
原因是尚有连接到该数据库的连接未断开,而这个连接正是我的程序中连接业务
数据库的TADOConnection。
我尝试在还原备份之前,同时用几种方法将连接关闭
1、将其Connected属性设为false
2、把KeepConnection设为false
3、把ConnectionString的值保存到一个字符串变量中再将它设为''
4、设置把这个连接业务数据库的ConnectionString改为连接到Master数据库并打开
然后执行备份的数据还原,仍然提示相同的错误。
最后,直到我在程序中把这个业务连接TADOConnection给Free掉,创建另一个
TADOConnection连到Master数据库中才行。
但这样就带来了极大的不便,因为执行了备份还原后还要继续运行系统,业务连接
还是要重新打开的。不太明白TADOConnection的连接机制,它究竟是根据什么来保持
这样的数据库连接的呢?有什么办法能把业务数据库的连接暂时关闭,过后再重新
打开?不知道大家有没有遇到过类似的情况?该如何处理较好?