用如下这段代码只能备份客户机的数据库
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
try
adoconnection1.Connected:=True;
with adoQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Backup DataBase a to disk ='''+opendialog1.FileName+'''');
ExecSQL;
end;
except
Exit;
end;
end;
end;
但是备份服务器的数据库会提示找不到备份设备
怎样备份服务器的数据呢?
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
try
adoconnection1.Connected:=True;
with adoQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Backup DataBase a to disk ='''+opendialog1.FileName+'''');
ExecSQL;
end;
except
Exit;
end;
end;
end;
但是备份服务器的数据库会提示找不到备份设备
怎样备份服务器的数据呢?
如果你一定要备份到客户机上,可以考虑:
1 首先备份到服务器的指定目录下;
2 从服务器上将备份出来的文件拷贝的客户机上;
nowdate,bakname:String;
begin
dm.c_backup.CommandText:='backup database oldwater to disk=:filename';
nowdate:=formatdatetime('yyyy-MM-dd',now);
savedialog1.Title:='请输入您要备份的数据文件名称...';
saveDiaLog1.FileName:=nowdate;//一定要加上
savedialog1.Filter:='bak files (*.bak)|*.bak';
if savedialog1.Execute then begin
bakname:=savedialog1.FileName+'.bak';
dm.c_backup.Parameters.ParamByName('filename').Value:=bakname;
dm.c_backup.Execute;
showmessage('您已经成功备份,请妥善保存!');
end;
end;
简单例子:
mydataset :Tdataset;
begin
一个表的处理
mydataset.commondtext :='select * from tablename '
mydataset.open;
mydataset.savefile('c:\temp\文件名字');
end;
也能用dbgrid打开。
mydataset1.loadfile('c:\temp\文件名字')
mydataset1.open;
------------------------记的不算清楚,但是一能办到你说得哪个样子
作 者: chizengkun (Bryan)
等 级:
信 誉 值: 100
所属社区: Delphi 数据库相关
问题点数: 0
回复次数: 1
发表时间: 2004-09-29 14:14:00
可以有几种不同的形式来实现(SQL SERVER2000)数据库的备份与恢复:
一、使用连机与脱机状态
语句为:
ALTER DATABASE DBName SET OFFLINE WITH ROLLBACK IMMEDIATE(将数据库转为脱机状态后使用数据恢复语句:Use master;Restore DataBase DBName from DISK=N'''+FilePath+''' WITH FILE = 1, Replace,Recovery(后面的参数可能还有多种)
)
在数据库恢复后,使用语句将数据库的脱机状态转为连机状态,语句为:
Alter database DBName set online with rollback immediate 数据就可能恢复了。
二、停止整个数据库,后恢复
使用语句为sp_Detach_db DBName卸下数据库
连接数据库的命令:Sp_attach_db或者sp_attach_single_file_db
s_attach_db [@dbname =] ′dbname′, [@filename1 =] ′filename_n′ [,...16]
sp_attach_single_file_db [@dbname =] ′dbname′, [@physname =] ′physical_name
此语句可将数据库下的整个文件全部的进行拷贝与粘贴等操作,在连接数据库时使用物理路径如:
sp_attach_db 'test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_data.mdf','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf'
sp_attach_single_file_db 'test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_data.mdf'