我的数据库还原代码如下:
procedure TDataBack.RecoverDataClick(Sender: TObject);
var DataPath: string;
begin
self.Caption := '正在恢复数据....';
adodm.XQconn.Close;
adodm.XQconn.Connected := false;
OpenDialog1.Filter := '备份文件 (*.back)|*.back|所有文件 (*.*)|*.*'; //设置备份文件后缀
OpenDialog1.InitialDir := ExtractFileDir(Application.ExeName) + '\backupdata';
//设置备份路径
if OpenDialog1.Execute then
DataPath := OpenDialog1.FileName;
if DataPath <> '' then
begin
if application.MessageBox('此操作将使上次备份以来的所有数据丢失,是否继续?', '恢复数据', MB_OKCANCEL) = idOK then
begin
a1.Active := true;
adodm.cback.CommandText := 'restore database XQ from disk=''' + DataPath + '''' + ' with replace'; //恢复数据命令语句
try
try
adodm.cback.Execute;
//执行恢复过程
showmessage(' 恢复成功!');
except
showmessage('数据库正在被使用!请确定已关闭其它使用该数据库程序!');
showmessage(' 恢复失败!');
end;
finally
a1.Active := false;
try
// 打开各个数据表是否有错误
adodm.YHTS.Open;
adodm.part.Open;
adodm.client.Open;
adodm.Toper.Open;
adodm.Tuser.Open;
adodm.ZHBX.Open;
adodm.Model.Open;
adodm.ClientFamily.Open;
adodm.ChargeItem.Open;
adodm.ClientRoom.Open;
adodm.Charge.Open;
adodm.ClientPay.Open;
adodm.ClientAdvance.Open;
except
showmessage('程序运行发生不可预知错误,请重新启动程序!');
//结束该程序
Application.Terminate;
end;
end;
end;
end;
self.Caption := '数据备份和恢复';
end;
我数据模块ADODM里有两个ADOCONNECTION。一个连接用户数据库(XQCONN);一个连接了(BACKCONN)MASTER,可是运行还原数据库时候,总出现数据库正在使用的问题。请各位高手赐教啦……CBACK:TADOCOMMAND它是连接BACKCONN的。
procedure TDataBack.RecoverDataClick(Sender: TObject);
var DataPath: string;
begin
self.Caption := '正在恢复数据....';
adodm.XQconn.Close;
adodm.XQconn.Connected := false;
OpenDialog1.Filter := '备份文件 (*.back)|*.back|所有文件 (*.*)|*.*'; //设置备份文件后缀
OpenDialog1.InitialDir := ExtractFileDir(Application.ExeName) + '\backupdata';
//设置备份路径
if OpenDialog1.Execute then
DataPath := OpenDialog1.FileName;
if DataPath <> '' then
begin
if application.MessageBox('此操作将使上次备份以来的所有数据丢失,是否继续?', '恢复数据', MB_OKCANCEL) = idOK then
begin
a1.Active := true;
adodm.cback.CommandText := 'restore database XQ from disk=''' + DataPath + '''' + ' with replace'; //恢复数据命令语句
try
try
adodm.cback.Execute;
//执行恢复过程
showmessage(' 恢复成功!');
except
showmessage('数据库正在被使用!请确定已关闭其它使用该数据库程序!');
showmessage(' 恢复失败!');
end;
finally
a1.Active := false;
try
// 打开各个数据表是否有错误
adodm.YHTS.Open;
adodm.part.Open;
adodm.client.Open;
adodm.Toper.Open;
adodm.Tuser.Open;
adodm.ZHBX.Open;
adodm.Model.Open;
adodm.ClientFamily.Open;
adodm.ChargeItem.Open;
adodm.ClientRoom.Open;
adodm.Charge.Open;
adodm.ClientPay.Open;
adodm.ClientAdvance.Open;
except
showmessage('程序运行发生不可预知错误,请重新启动程序!');
//结束该程序
Application.Terminate;
end;
end;
end;
end;
self.Caption := '数据备份和恢复';
end;
我数据模块ADODM里有两个ADOCONNECTION。一个连接用户数据库(XQCONN);一个连接了(BACKCONN)MASTER,可是运行还原数据库时候,总出现数据库正在使用的问题。请各位高手赐教啦……CBACK:TADOCOMMAND它是连接BACKCONN的。
KILL所有连接(要恢复数据库)
select spid from master..sysprocesses where dbid=db_id('表名')
kill spid (所有连接)
能不能说详细点咯,我是新手啊。拜托……