H
hyzb
Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TF_Main.RestoreDatabase(filename:AnsiString);<br>var<br> Restore,str:AnsiString;<br> ini:TIniFile;<br>begin<br> DM.AQ_SQL.Close;<br> DM.AQ_SQL.SQL.Clear;<br> Restore := 'RESTORE DATABASE '; //生成数据库还原命令赋Restore字符串<br> ini := TIniFile.Create(ChangeFileExt(Application.ExeName,'.INI' ));//打开医院信息系统数据库INI配置文件<br> str := ini.ReadString('Database','Initial Catalog','Archives'); //从配置文件读数据库名<br> Restore := Restore+str; //追加医院信息系统数据库名<br> DM.AQ_SQL.SQL.Add(Restore);//增加还原数据库SQL命令语句<br> str := 'FROM DISK = '''; //生成还原数据库文件的路径和文件名字符串<br> str := str+filename;<br> str := str+'''';<br> DM.AQ_SQL.SQL.Add(str); //增加还原数据库文件的路径和文件名字符串SQL语句<br> DM.AQ_SQL.SQL.Add(' WITH norecovery'); //还原数据库SQL语句WITH参数设定,完整还原数据库<br> try<br> DM.AQ_SQL.ExecSQL;<br> except<br> Application.MessageBox('数据库恢复出错', '错误!', mrOK);<br> end;<br>end;<br>这是数据库恢复的代码,其中的DM.AQ_SQL是用于数据库备份和恢复的adoquery控件,每次执行到 DM.AQ_SQL.ExecSQL时就报错:<br>exclusive access could not be obtained because the database is in use <br>请问各位该怎么解决啊?