开发环境:
Delphi7 ---Ado---- Sql Server7/2k
运行环境:
Windows平台
软件中内置了数据库自动生成的功能,生成数据库通常用以下两种方式之一:
备份恢复方式
sp_attach_single_file_db方式
但是这两种方式在生成数据库时都存在生成不成功的时候,还有其他更好的
生成方式吗
Delphi7 ---Ado---- Sql Server7/2k
运行环境:
Windows平台
软件中内置了数据库自动生成的功能,生成数据库通常用以下两种方式之一:
备份恢复方式
sp_attach_single_file_db方式
但是这两种方式在生成数据库时都存在生成不成功的时候,还有其他更好的
生成方式吗
恢复数据库应该是:
procedure TFrmDBMaintain.Button2Click(Sender: TObject);
var
address: String;
begin
address:=Edit2.Text;
if not FileExists(address) then
begin
Application.MessageBox('数据库备份文件不存在','文件',MB_OK);
Exit;
end; if DMADO.ADOConnection1.Connected then DMADO.ADOConnection1.Close;
DMADO.ADOConnection1.DefaultDatabase:='Master';
DMADO.ADOConnection1.Open; try
if DMADO.ADOQuery1.Active then DMADO.ADOQuery1.Close;
DMADO.ADOQuery1.SQL.Clear;
DMADO.ADOQuery1.SQL.Add('USE master');
DMADO.ADOQuery1.SQL.Add('EXEC sp_dropdevice '+DBBK);
DMADO.ADOQuery1.ExecSQL;
except
Application.MessageBox('数据库备份驱动器不存在','错误',MB_OK);
Exit;
end;
if DMADO.ADOQuery1.Active then DMADO.ADOQuery1.Close;
DMADO.ADOQuery1.SQL.Clear;
DMADO.ADOQuery1.SQL.Add('USE master');
DMADO.ADOQuery1.SQL.Add('EXEC sp_addumpdevice'+''''+'disk'+''''+','+''''+DBBK+''''+',');
DMADO.ADOQuery1.SQL.Add(''''+address+'''');
DMADO.ADOQuery1.ExecSQL;
try
if DMADO.ADOQuery1.Active then DMADO.ADOQuery1.Close;
DMADO.ADOQuery1.SQL.Clear;
DMADO.ADOQuery1.SQL.Add('RESTORE DATABASE '+DatabaseName+' FROM '+DBBK);
DMADO.ADOQuery1.ExecSQL;
DMADO.ADOQuery1.Close;
except
Application.MessageBox('数据库恢复失败','错误',MB_OK)
end; if DMADO.ADOConnection1.Connected then DMADO.ADOConnection1.Close;
DMADO.ADOConnection1.DefaultDatabase:=DatabaseName;
DMADO.ADOConnection1.Open;
end;