特急!关于关闭数据库! (200分)

  • 主题发起人 主题发起人 小虫~
  • 开始时间 开始时间

小虫~

Unregistered / Unconfirmed
GUEST, unregistred user!
一个程序,在开始时需要口令验证,但是进入程序后有一项"系统初始化"功能,就是删除标单,
重建标单,但是总是提示库在使用,(关闭了所有标单以及connection也关闭了)如果这时手工
关闭sqlserver服务,在启动,就可以重建.该如何解决?
明天交工,急!qq:372233
删库:
IF EXISTS (SELECT * FROM sysdatabases WHERE name = ''TPMIS_TK'')' +
'BEGIN ' +
'DROP database TPMIS_TK ' +
'END;'
建库:
Dm.coBuildDBStru.CommandText := 'Create Table TP_I_I ' +....
 
不用关闭服务,先脱机,再附加数据库。
sp_decath_db
sp_attach_db
 
是不是应该所有语句用
adoconnection1.execute(sql语句)
可能就不会出现这样的问题
 
在系统初始化时,数据库中一定存在有打开的表单未关闭,好好找找
 
to smallbs:
我是一个一个的关标单的,应该没有了:
dm.ADOConnection1.Close;
dm.dstpmis.CloseDataSets;
dm.DatabaseTpmis.CloseDataSets;
dm.dstpmis.Close;
dm.DatabaseTpmis.Close;
dm.qrUserInformation.Close;
dm.qrItemInformation.Close;
dm.tbTP_I_I.Close;
dm.tbTP_I_P.Close;
dm.dstpmis.close;
.......
 
系统中只有你一个用户吗? 如果是,哪就比较复杂了,顺便问问,你做系统初始化时使用的数据连接与它有没有关系呢
 
把连到这个数据库的连接全关闭,然后连到主数据库master,然后执行删除数据库的操作。
 
dm.ADOConnection1.DefaultDatabase:='master';
还是不行:((
 
to :smallbs
调试中,只有一个用户!
 
to 小虫:应该有帮助的.
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1121642
 
如果系统初始化使用的数据连接与它没有关系的话,也有可能在你断开那个数据连接的时候,
数据库服务系统没能及时响应,如果是这样,我也没有好办法,建议在客户端系统启动时
先别连接那个要初始化的数据库,待后期动态连接 (仅仅是个人看法了)。 祝你好运!
 
删除表单前把表单上数据库连接。
 
看看Sql server中的ProccessID和LockID列表,可以看到那些表是锁住的,然后对症下药。
 
是用BDE还是其他引擎连接?
 
关闭原数据库所有链接,连到主数据库,ADOCONNECTION.Execute(sp_dbremove pubs 数据库名称');
 
还是没有解决:(
 
ADOConnection1.Connected := False;
ADOConnection1.KeepConnection := False;
// DELETE TABLE
// CREATE TABLE
ADOConnection1.KeepConnection := True;
不知行不行?
 
多人接受答案了。
 
后退
顶部