如果是单用户,用以下的方法可以,但如果是多用户,自己试验一下吧,我也不知道可不可以。 1. ADOConnection1 连接你的业务数据库。 2. ADOConnection2 连接 MASTER 数据库。 3. ADOCommand1.Connection := ADOConnection2; 假设你的数据库名为: DataBaseName Button.OnClick: begin ADOConnection1.Connected := False; ADOCommand1.CommandText := 'BACKUP DATABASE DataBaseName TO DISK = ' + #39 + 'C:\KKK.BAK' + #39; ADOCommand1.Execute; ADOCommand1.CommandText := 'ALTER DATABASE DataBaseName SET OFFLINE WITH ROLLBACK IMMEDIATE'; ADOCommand1.Execute; ADOCommand1.CommandText := 'RESTORE DATABASE DataBaseName FROM DISK = ' + #39 + 'C:\KKK.BAK' + #39; ADOCommand1.Execute; ADOCommand1.CommandText := 'ALTER DATABASE DataBaseName SET ONLINE WITH ROLLBACK IMMEDIATE'; ADOCommand1.Execute; ADOConnection1.Connected := True; ADOTable1.Active := true; end;
BACKUP DATABASE [XTPT] TO DISK = N'C:\MSSQL7\BACKUP\Data_backup' WITH INIT , NOUNLOAD , NAME = N'XTPT backup', NOSKIP , STATS = 10, NOFORMAT RESTORE DATABASE [XTPT] FROM DISK = N'C:\MSSQL7\BACKUP\Data_backup' WITH FILE = 1, NOUNLOAD , STATS = 10, RECOVERY , REPLACE 说明:其中的XTPT为一个数据库的名知名称。 这是一个SQLSERVER 下的语法,如果是SYBASE 则 是 DUMP 。LOAD 你可以把这些语放到一个QUERY 中来执行它呀。
这是数据备份,有些地方还是要改一下的 var data_str:string; begin savedialog1.FileName:=datetimetostr(date())+'.mdb'; if savedialog1.Execute then begin datamodform.adoConnection1.Connected:=false; data_str:=ExtractFilePath(application.ExeName)+'\dindansystem.mdb'; datamodform.ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source='+data_str+';Persist Security Info=True'; datamodform.ADOConnection1.Provider:='Microsoft.Jet.OLEDB.4.0'; datamodform.ADOConnection1.LoginPrompt:=false; copyfile(pchar(Extractfilepath(application.ExeName)+'\dindansystem.mdb'),pchar(savedialog1.FileName),false); application.MessageBox('数据库被成功导出!','信息提示',MB_OK); end;
这是数据恢复,有些地方还是要改一下的 var i:integer; data_str:string; begin i:=application.MessageBox('数据导入将覆盖掉现有的数据库,您确认吗?','信息提示',MB_IconInformation+MB_YesNo+MB_DefButton2); if i=6 then begin if opendialog1.Execute then begin datamodform.adoconnection1.connected:=false; data_str:=ExtractFilePath(application.ExeName)+'\dindansystem.mdb'; datamodform.ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source='+data_str+';Persist Security Info=True'; datamodform.ADOConnection1.Provider:='Microsoft.Jet.OLEDB.4.0'; datamodform.ADOConnection1.LoginPrompt:=false; copyfile(pchar(opendialog1.FileName),pchar(Extractfilepath(application.ExeName)+'\dindansystem.mdb'),false); application.MessageBox('数据库被成功导入!','信息提示',MB_OK); end; end;
备份:back database to disk='路径'; 恢复:restore database from disk='路径';
1. ADOConnection1 连接你的业务数据库。
2. ADOConnection2 连接 MASTER 数据库。
3. ADOCommand1.Connection := ADOConnection2;
假设你的数据库名为: DataBaseName
Button.OnClick:
begin
ADOConnection1.Connected := False;
ADOCommand1.CommandText := 'BACKUP DATABASE DataBaseName TO DISK = ' + #39 + 'C:\KKK.BAK' + #39;
ADOCommand1.Execute;
ADOCommand1.CommandText := 'ALTER DATABASE DataBaseName SET OFFLINE WITH ROLLBACK IMMEDIATE';
ADOCommand1.Execute;
ADOCommand1.CommandText := 'RESTORE DATABASE DataBaseName FROM DISK = ' + #39 + 'C:\KKK.BAK' + #39;
ADOCommand1.Execute;
ADOCommand1.CommandText := 'ALTER DATABASE DataBaseName SET ONLINE WITH ROLLBACK IMMEDIATE';
ADOCommand1.Execute;
ADOConnection1.Connected := True;
ADOTable1.Active := true;
end;
这是一个SQLSERVER 下的语法,如果是SYBASE 则 是 DUMP 。LOAD
你可以把这些语放到一个QUERY 中来执行它呀。
var
data_str:string;
begin
savedialog1.FileName:=datetimetostr(date())+'.mdb';
if savedialog1.Execute then
begin
datamodform.adoConnection1.Connected:=false;
data_str:=ExtractFilePath(application.ExeName)+'\dindansystem.mdb';
datamodform.ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source='+data_str+';Persist Security Info=True';
datamodform.ADOConnection1.Provider:='Microsoft.Jet.OLEDB.4.0';
datamodform.ADOConnection1.LoginPrompt:=false;
copyfile(pchar(Extractfilepath(application.ExeName)+'\dindansystem.mdb'),pchar(savedialog1.FileName),false);
application.MessageBox('数据库被成功导出!','信息提示',MB_OK);
end;
var i:integer;
data_str:string;
begin
i:=application.MessageBox('数据导入将覆盖掉现有的数据库,您确认吗?','信息提示',MB_IconInformation+MB_YesNo+MB_DefButton2);
if i=6 then
begin
if opendialog1.Execute then
begin
datamodform.adoconnection1.connected:=false;
data_str:=ExtractFilePath(application.ExeName)+'\dindansystem.mdb';
datamodform.ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source='+data_str+';Persist Security Info=True';
datamodform.ADOConnection1.Provider:='Microsoft.Jet.OLEDB.4.0';
datamodform.ADOConnection1.LoginPrompt:=false;
copyfile(pchar(opendialog1.FileName),pchar(Extractfilepath(application.ExeName)+'\dindansystem.mdb'),false);
application.MessageBox('数据库被成功导入!','信息提示',MB_OK);
end;
end;
恢复:restore database from disk='路径';