用SQL语句写了恢复数据库备份的代码,同时关掉了其他ADO控件的连接(除用于执行SQL的控件外)
StrSQL := 'restore database guard from disk='''+'h:\ws\guard.bak' +''''+'with replace';
GuaDataModule.ADOQuery1.Connection := GuaDataModule.ADOConnection1 ;
GuaDataModule.ADOConnection.Close;
GuaDataModule.ADOQuery1.SQL.Clear ;
GuaDataModule.ADOQuery1.SQL.Add(StrSQL);
GuaDataModule.ADOQuery1.ExecSQL ;
GuaDataModule.ADOConnection.Open;
可还是出现的问题,说‘the database is in use'的错误,为什么啊?
错在什么地方?
StrSQL := 'restore database guard from disk='''+'h:\ws\guard.bak' +''''+'with replace';
GuaDataModule.ADOQuery1.Connection := GuaDataModule.ADOConnection1 ;
GuaDataModule.ADOConnection.Close;
GuaDataModule.ADOQuery1.SQL.Clear ;
GuaDataModule.ADOQuery1.SQL.Add(StrSQL);
GuaDataModule.ADOQuery1.ExecSQL ;
GuaDataModule.ADOConnection.Open;
可还是出现的问题,说‘the database is in use'的错误,为什么啊?
错在什么地方?
搞不定,帮你UP
ADOConnection1.Execute ('restore database guard from disk='''+'h:\ws\guard.bak' +''''+'with replace';肯定没问题,我经常这样用!
uses master
restore database name from disk='c:\name.bak' with replaceADOConnection1打开时连接 master表用adoquery连接到ADOConnection1
with adoquery do
begin
active:=false;
Connection := ADOConnection1;
sql.add('restore database name from disk='+'+''''+'c:\name.bak' +''''+with replace')
execsql;
end;