请问高手在delphi中如何写sql语句实现逻辑备份和恢复oracle数据库???? to jiezhi(Niu):具体怎么实现呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可参考以下程序段:var str:string; p:pchar;begin str:='exp username/password file=backup.dmp'; p:=pchar(str); winexec(p,0);end; DELPHI 里有一个BatchMove 控件,用他就可以,不过这里进行导的是表,相信其他的(视图,存储过程,触发器)导入导出就更简单了,问题是你在导表时要处理好索引. 完全备份:unit wqbf;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, FileCtrl, ADODB, DB, ComCtrls, Tabs, Grids, Outline;type TwqbfForm = class(TForm) Panel1: TPanel; Label1: TLabel; Edit1: TEdit; SaveDialog1: TSaveDialog; SpeedButton1: TSpeedButton; BitBtn1: TBitBtn; BitBtn2: TBitBtn; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; Label2: TLabel; procedure SpeedButton1Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var wqbfForm: TwqbfForm;implementation{$R *.dfm}procedure TwqbfForm.SpeedButton1Click(Sender: TObject);var filename : string;begin if savedialog1.Execute then begin filename:=savedialog1.FileName; filename:=trim(filename); edit1.Text:=filename; end;end;procedure TwqbfForm.BitBtn1Click(Sender: TObject);begin label2.Caption:='正在备份中'; with adoquery1 do begin close; sql.Clear; sql.Add('use master'); SQL.Add('backup database bysj to disk=:bf'); parameters.ParamByName('bf').Value:=edit1.Text; ExecSQL; end; label2.Caption:='您的已经成功备份数据!!!';end;procedure TwqbfForm.BitBtn2Click(Sender: TObject);begin close;end;end. 差异备份unit cybf;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, Buttons, StdCtrls, ExtCtrls;type TcybfForm = class(TForm) Panel1: TPanel; Edit1: TEdit; Label1: TLabel; BitBtn1: TBitBtn; SpeedButton1: TSpeedButton; BitBtn2: TBitBtn; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; OpenDialog1: TOpenDialog; Label2: TLabel; procedure SpeedButton1Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var cybfForm: TcybfForm;implementation{$R *.dfm}procedure TcybfForm.SpeedButton1Click(Sender: TObject);var filename:string;begin if opendialog1.Execute then begin filename:=opendialog1.FileName; filename:=trim(filename); edit1.Text:=filename; end;end;procedure TcybfForm.BitBtn1Click(Sender: TObject);begin label2.Caption:='正在进行差异备份中!!!'; with adoquery1 do begin close; sql.Clear; sql.Add('use master'); sql.Add('backup database bysj to disk=:kb with differential'); parameters.ParamByName('kb').Value:=edit1.Text; execsql; end; label2.caption:='差异备份成功!';end;procedure TcybfForm.BitBtn2Click(Sender: TObject);begin close;end;end. 在USERS那里加上SHELLAPI,调用函数。 ShellExecute(0, "open", "exp user/paswd@aa file=a.dat", NULL, NULL, SW_SHOWDEFAULT); To wupangzi(无本之木),我用的是oracle 8i,不是SQL Server,你那些语句好像只适用于SQL Server. To LGQDUCKY(飘) ,已经适过,好像没有什么反映。 to tsj68(tsj) ,方法可行,谢谢。 求助一条SQL语句。。。 2个表,update求汇总 读取旧库的数据文件? 一个不知道怎么写sql,可能很简单,也可能有点复杂,大家帮忙看看 帮忙解决一个SQL问题?????? 一个Oracle报表问题 hint问题,急!!! .db是什么文件??? 问一个问题 利用tnsping工具测试与数据库服务器的连接失败,请教指点! X鸟问题,关于巨型记录集的操作 看看oracle如何将这个变量添加到数据库中
var
str:string;
p:pchar;
begin
str:='exp username/password file=backup.dmp';
p:=pchar(str);
winexec(p,0);
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, FileCtrl, ADODB, DB, ComCtrls,
Tabs, Grids, Outline;type
TwqbfForm = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Edit1: TEdit;
SaveDialog1: TSaveDialog;
SpeedButton1: TSpeedButton;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
Label2: TLabel;
procedure SpeedButton1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
wqbfForm: TwqbfForm;implementation{$R *.dfm}procedure TwqbfForm.SpeedButton1Click(Sender: TObject);
var filename : string;
begin
if savedialog1.Execute then
begin
filename:=savedialog1.FileName;
filename:=trim(filename);
edit1.Text:=filename;
end;
end;procedure TwqbfForm.BitBtn1Click(Sender: TObject);
begin
label2.Caption:='正在备份中';
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('use master');
SQL.Add('backup database bysj to disk=:bf');
parameters.ParamByName('bf').Value:=edit1.Text;
ExecSQL;
end;
label2.Caption:='您的已经成功备份数据!!!';
end;procedure TwqbfForm.BitBtn2Click(Sender: TObject);
begin
close;
end;end.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Buttons, StdCtrls, ExtCtrls;type
TcybfForm = class(TForm)
Panel1: TPanel;
Edit1: TEdit;
Label1: TLabel;
BitBtn1: TBitBtn;
SpeedButton1: TSpeedButton;
BitBtn2: TBitBtn;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
OpenDialog1: TOpenDialog;
Label2: TLabel;
procedure SpeedButton1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
cybfForm: TcybfForm;implementation{$R *.dfm}procedure TcybfForm.SpeedButton1Click(Sender: TObject);
var filename:string;
begin
if opendialog1.Execute then
begin
filename:=opendialog1.FileName;
filename:=trim(filename);
edit1.Text:=filename;
end;
end;procedure TcybfForm.BitBtn1Click(Sender: TObject);
begin
label2.Caption:='正在进行差异备份中!!!';
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('use master');
sql.Add('backup database bysj to disk=:kb with differential');
parameters.ParamByName('kb').Value:=edit1.Text;
execsql;
end;
label2.caption:='差异备份成功!';
end;procedure TcybfForm.BitBtn2Click(Sender: TObject);
begin
close;
end;end.
ShellExecute(0, "open", "exp user/paswd@aa file=a.dat", NULL, NULL, SW_SHOWDEFAULT);