关于删除SQL Server的数据库,难!(200分)

  • 主题发起人 主题发起人 SBSB174
  • 开始时间 开始时间
S

SBSB174

Unregistered / Unconfirmed
GUEST, unregistred user!
本人在作一个财务方面的系统,有多个账套。
这样在数据库设计中有一个总库包含系统级的信息数据表,
每个账套生成单独的数据库,包含各自的账务数据表。

MIDAS中间层使用两个ADOConnection连接数据,一个连接总库,
另一个动态地随客户选择的账套切换连接各账套数据库;

在设计删除账套这一功能时,出现麻烦:
当我首先进入了某个账套,即后台的账套ADO连接了该账套库,
然后退出该账套,即后台的账套ADO的Connected设置为False;
此时,如果去删除该账套,即删除该账套数据库时,
系统会提示该数据库正在使用,即使当时没有其他客户端在用。

但,如果开始没有进入过该账套,即后台没有连接过该数据库,
则可顺利地删除;

望各位大侠,不吝赐教!!!要多少分,我倾家荡产也给!
 
高手在哪里?我一定要找到你!
 
要先把adoconnection.close
再断开,并联到master库去
 
你咯SB,问题还不够清楚,
这有类似源码。
 
to wwolf:
我已试过,不行,有没有更好的办法,谢谢
 
后台的账套ADO的Connected设置为False之后,再将这个连接控件随便连接到其它
数据库(比如master),这样,就可以删除了。
 
如果你确定只有这一个adoconnection连到这个库,
并且是先close,再连到master上去,那应该是没有问题的,都有做过了。
一个建议:你可以打开SQL Server的监视器,查看一下connection的情况。
如果有开SQL SERVER的企业管理器,一定要关掉,单单断开连接是不行的,
一定要关闭,我也不知道为什么,但我以前被它搞死了,花了一个小时才查出来。
 
to wwolf
就是在"事件探查器"中监视时,在adoconnection的close时,
有时有logout有时没有,没有时删除出错。
 
我的前台是通过点击一个按钮,调用DCOM的远程方法DeleteAccount;

后台在实现该函数时,正如上面说的:
先Close该acntAccount;
再连接到master数据库;
再Close该acntAccount;

然后,在连接系统库的acntSystem,
中执行删除该账套数据库的语句;

如果开始没有打开过该账套,就顺利删除了;
但如果打开过该账套,则在删除时,一般不能顺利的一次删除;
需要点击该按钮2~3次或更多才能删除该账套,或一直提示在使用。
 
来自:sunshine770517, 时间:2002-11-14 16:09:00, ID:1432104
你咯SB,问题还不够清楚,
这有类似源码。

 
將所有的 clientdataset close
then connected :=false
ok!!!!
 
acntAccount是什么?我是指把adoconnection.close
 
acntAccount是连接帐套的adoconnection
 
萧月禾FW有个备存数据库的贴子,应该与你的要求类似,都是要与当前数据库断开联系的,
你找一下他那个贴子吧,LID我也不记得了
 
如果排除了ado连接问题,我估计是连接池,也就是连接缓存的问题,你查查资料,
清楚缓存试试,
身边没有环境,无法查资料做测试,抱歉
 
多人接受答案了。
 
后退
顶部