数据备份/恢复,数据上报/接收(100分)

  • 主题发起人 主题发起人 xx6620063
  • 开始时间 开始时间
X

xx6620063

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟是初学者,想在数据库程序中加数据备份/恢复(不是copy),数据上报/接收(导出文件,追加上级单位的数据库中),请高手指点,有详细代码给我发一个吧!谢了
xx6620063@163.com
 
高手们,请指点一下吧
 
好像不能吧 你是用什么数据库,最好做成xml 然后导入
 
小弟是初学者,想在数据库程序中加数据备份/恢复(不是copy),数据上报/接收(导出文件,追加上级单位的数据库中)数据库是ACCESS,请高手指点,有详细代码给我发一个吧!谢了
 
数据备份/恢复的代码多了.自己在论坛检索下,包你满意.
至于数据上报/接收,按照你的意思用导出的话,也很容易.论坛里也很多的啊.只要"上级单位"数据库和下级单位的一样,做个导入/导出就行了!
 
呵呵,赶紧查离线资料
 
给我发代码码,分全给你了(要通过编译)____小弟是初学者,想在数据库程序中加数据备份/恢复(不是copy),数据上报/接收(导出文件,追加上级单位的数据库中)数据库是ACCESS,请高手指点,有详细代码给我发一个吧!谢了,
 
给我发代码码,分全给你了(要通过编译)____小弟是初学者,想在数据库程序中加数据备份/恢复(不是copy),数据上报/接收(导出文件,追加上级单位的数据库中),请高手指点,有详细代码给我发一个吧!谢了
xx6620063@163.com
 
给我发代码码,分全给你了(要通过编译)____小弟是初学者,想在数据库程序中加数据备份/恢复(不是copy),数据上报/接收(导出文件,追加上级单位的数据库中),请高手指点,有详细代码给我发一个吧!谢了
xx6620063@163.com
 
[red]lgwen[/red][:)]高手们:小弟是初学者,想在数据库程序中加数据备份/恢复(不是copy),数据上报/接收(导出文件,追加上级单位的数据库中),请高手指点,有详细代码给我发一个吧!谢了
xx6620063@163.com
 
小弟是初学者,想在数据库程序中加数据备份/恢复(不是copy),数据上报/接收(导出文件,追加上级单位的数据库中)数据库是ACCESS,请高手指点,有详细代码给我发一个吧!谢了
 
高手们,你们做数据库项目应该都有这样的功能吧,发个代码行嘛
 
问题: 请问数据库的备份和恢复是怎样实现的? ( 积分: 100 )
分类: 数据库-文件型

来自: pzh509, 时间: 2002-05-11 22:56:00, ID: 1095309
不会只是数据表的复制而已吧??
(请各位大侠告知!最好给出原码,谢谢!!)

来自: why_119, 时间: 2002-05-11 22:58:00, ID: 1095315
sql

来自: hbezwwl, 时间: 2002-05-11 22:59:00, ID: 1095320
你是什么数据库的,

来自: 南宫吹云, 时间: 2002-05-11 23:04:00, ID: 1095326
回答好多遍了:
备份:
backup database yourdb to disk='c:/temp.dat';
恢复:
restore database yourdb from disk='c:/temp.dat' with replace;//强制恢复

来自: ning_ning, 时间: 2002-05-11 23:43:00, ID: 1095377
对大型数据库,使用其自身的备份和恢复功能。
对本地文件型的数据,可以拷贝,也可以使用一些打包控件。

来自: pzh509, 时间: 2002-05-14 19:52:00, ID: 1100857
我采用的是access数据库啊!!!
那里有存储过程?

来自: pzh509, 时间: 2002-05-14 20:01:00, ID: 1100878
to 南宫吹云:
你可能误会我的意思了,我是说在程序中如何实现数据库的备份和恢复?
我的程序采用ado+assess数据库

来自: gdljc, 时间: 2002-05-14 20:05:00, ID: 1100886
Tbatchmove

来自: dmg, 时间: 2002-05-14 20:50:00, ID: 1100960
有控件可以下载如果你需要可以找我。
ycfree@21cn.com

来自: 山猫, 时间: 2002-05-14 21:19:00, ID: 1101006
我用的程序 备份我的数据库是 把我的数据库 压缩 并生成另一个文件 .

我用的数据驱动是 DiamondAccess 操作 ACCESS2000 的数据库

代码很少. 只有 几行. 你想要可以自己 查以前的 帖 子

你的 数据 库如有 密码. 想要备份 可以给我写信, 我给你代码.

来自: heron, 时间: 2002-05-14 21:36:00, ID: 1101056
to:山猫
能给我发一份吗?谢谢! PowerHeron@163.com

来自: pzh509, 时间: 2002-05-15 16:20:00, ID: 1102511
to 山猫:
我查了,但找不到,看来要麻烦你了,我不知道你的E-mail,写不了信给你啊
干脆你发给我或者贴出来!!!pzh508@cmmail.com,谢谢!

来自: jsg, 时间: 2002-05-15 18:29:00, ID: 1102817
山猫:
我也要!!
jing9811@sina.com


来自: 山水之间, 时间: 2002-05-16 13:05:00, ID: 1104260
to 山猫:
您的这个方法不错,能发给我一份吗?非常感谢!myemail:jxliying@163.com

来自: bianlx, 时间: 2002-05-16 13:21:00, ID: 1104310
对于桌面型的数据库:
数据库的备份与恢复只有通过编程实现或者直接备份源数据库

对于大型数据库:
数据库管理系统自己随机带有数据备份与恢复的的功能或者命令

你应该把你所用的数据库,以及相应的应用讲以下,才能提供一些意见供你参考

来自: 土土, 时间: 2002-05-16 13:24:00, ID: 1104317
copyfile(源,目)就可以搞定啊

来自: 填海精卫, 时间: 2002-05-16 13:25:00, ID: 1104320
用DBBackup这个控件 一切OK

来自: zqqxh, 时间: 2002-05-30 1:39:00, ID: 1132083
to 山猫:
您的这个方法很好,发给我学习学习好吗?谢谢!zqqxh@163.com

来自: 马力, 时间: 2002-05-30 6:52:00, ID: 1132106
山猫:
我也正发愁呢,给我一份。谢谢您了。mld@acmail.zbu.net.cn

来自: jieyangwyt, 时间: 2003-06-21 9:53:00, ID: 1970085
nn

来自: 若凡, 时间: 2003-06-21 10:07:00, ID: 1970115
山猫:
若凡也要!谢谢!xjx555@yahoo.com.cn

来自: fly555, 时间: 2003-06-21 11:28:00, ID: 1970325
山猫:
谢谢!llz1972@21cn.com

来自: LEEMA, 时间: 2003-06-21 11:39:00, ID: 1970347
to 山猫:
我也正发愁呢,给我一份好吗。谢谢您了。leeoky@sohu.com


来自: Supermay, 时间: 2003-06-21 15:23:00, ID: 1970820
在程序中,先关闭数据库连接,再把要备份的数据库(或恢复的数据库)用CopyFile函数Copy一份不就行了(反正你只是用Access)

来自: 低调一贱男, 时间: 2003-06-21 15:32:00, ID: 1970838
self.ADOCommand1.CommandText := 'RESTORE database led FROM DISK = '''
+ RESTORE.Dialog.FileName + '''';


self.ADOCommand1.CommandText := 'RESTORE database led FROM DISK = '''
+ RESTORE.Dialog.FileName + ''' with MOVE ''led_data '' TO '''
+ extractfiledir(application.ExeName) + '/led.MDF '', MOVE ''led_log'' TO '''
+ extractfiledir(application.ExeName) + '/led_Log.LDF ''';

来自: rainboy5906, 时间: 2003-06-26 13:35:00, ID: 1982442
备份:
unit u_Bf;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, Db, DBTables, StdCtrls, ComCtrls, DBGrids;

type
Tf_Bf = class(TForm)
BfDate: TDateTimePicker;
Label1: TLabel;
BfBt: TButton;
bfdlg: TOpenDialog;
Label2: TLabel;
edtbf: TEdit;
Search: TButton;
sp_bf: TStoredProc;
ExitBt: TButton;
GroupBox1: TGroupBox;
Ds: TDataSource;
DBGrid1: TDBGrid;
BfQy: TQuery;
BfQyJlDate: TDateTimeField;
BfQyWz: TStringField;
BfQybfhf: TIntegerField;
BfQyid: TAutoIncField;
procedure SearchClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BfBtClick(Sender: TObject);
procedure ExitBtClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
wCount: Word;
end;

var
f_Bf: Tf_Bf;

implementation

uses u_dm;

{$R *.DFM}

procedure Tf_Bf.SearchClick(Sender: TObject);
begin
bfdlg.FileName := edtbf.Text;
if bfdlg.Execute then edtbf.Text := bfdlg.FileName;
end;

procedure Tf_Bf.FormCreate(Sender: TObject);
var wYear, wMonth, wDay: Word;
begin
Decodedate(Now, wYear, wMonth, wDay);
BfDate.DateTime := Now();
edtbf.Text := 'c:/jsgl/' + IntToStr(wYear) + '_' + IntToStr(wMonth) + '_' + IntToStr(wDay) + '.Bak';
wCount := 0;
self.bfqy.Active := true;
end;

procedure Tf_Bf.BfBtClick(Sender: TObject);
begin
wCount := wCount + 1;
{
If wCount<>1 Then
Begin
MessageBox(handle,'必须重新启动才能进行第二次备份!','提示',0);
Exit;
End;
}
if FileExists(edtbf.text) then
if messagebox(handle, pchar(edtbf.Text + '文件已经存在,是否覆盖?'), pchar('询问'), MB_YESNO + Mb_defButton2) = IDYES then
if DeleteFile(edtbf.Text) = False then
begin
Messagebox(handle, '此文件不能删除,备份失败', '提示', 0);
Exit;
end;
with self.sp_bf do
begin
close;
parambyname('@wz').asstring := edtbf.text;
execproc;
end;
BfQy.Insert;
BfQy.FieldByName('bfhf').AsInteger := 1;
BfQy.FieldByName('JlDate').AsDateTime := BfDate.Date;
BfQy.FieldByName('wz').AsString := edtBf.Text;
BfQy.Post;
BfQy.Close;
BfQy.Open;
MessageBox(handle, '备份成功!', '提示', 0);
end;

procedure Tf_Bf.ExitBtClick(Sender: TObject);
begin
Close;
end;

end.



恢复:
unit u_hf;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, Db, DBTables, StdCtrls, ComCtrls, DBGrids;

type
Tf_hf = class(TForm)
hFDate: TDateTimePicker;
Label1: TLabel;
HfBt: TButton;
HfDlg: TOpenDialog;
Label2: TLabel;
edthf: TEdit;
Search: TButton;
sp_hf: TStoredProc;
Gb1: TGroupBox;
Grid: TDBGrid;
HfQy: TQuery;
HfQyJlDate: TDateTimeField;
HfQyWz: TStringField;
HfQybfhf: TIntegerField;
HfQyid: TAutoIncField;
Ds2: TDataSource;
ExitBt2: TButton;
procedure SearchClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure HfBtClick(Sender: TObject);
procedure ExitBt2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
f_hf: Tf_hf;

implementation

{$R *.DFM}

procedure Tf_hf.SearchClick(Sender: TObject);
begin
if hfdlg.Execute then edthf.Text := hfdlg.FileName;
end;

procedure Tf_hf.FormCreate(Sender: TObject);
begin
HfDate.DateTime := Now();
self.hfqy.Active := true;
end;

procedure Tf_hf.HfBtClick(Sender: TObject);
begin
if edthf.Text = '' then
begin
Messagebox(handle, '请选择恢复文件的位置!', '提示', 0);
Exit;
end;
if FileExists(edthf.text) = False then
begin
Messagebox(handle, '查无此文件!', '提示', 0);
Exit;
end;
if Messagebox(handle, '真的要恢复数据吗?', '询问', Mb_YesNo + Mb_DefButton2) = idNo then Exit;
Sp_hf.Close;
Sp_hf.ParamByName('@wz').ASString := edthf.Text;
Sp_hf.Execproc;
HfQy.Insert;
HfQy.FieldByName('bfhf').AsInteger := 2;
HfQy.FieldByName('JlDate').AsDateTime := HfDat

来自: rainboy5906, 时间: 2003-06-26 13:38:00, ID: 1982454
给分,...我这个已很完善了...

来自: tianxing78, 时间: 2003-06-27 16:52:00, ID: 1986146
对于你的数据库采用调用xcopy函数来实现就可以了。

来自: rainboy5906, 时间: 2003-06-28 13:30:00, ID: 1987714
郑重友情提示:数据备份或数据恢复如采用copyfile或xcopy函数的话,会严重损耗内存,数据量大时候,速度很慢,而且效率不高,容易出错,信不信由你,做为一名程序员来讲,我只求好的算法和好的实现方法,在此,我希望我们大家都能扎实自已的基础,寻找更好的算法和解决方案...请参照我上面的方法,速度和算法就目前来讲是较好的,但我始终相信,还有更好的算法和解决方案...就到此把问题结束了吧...[:(!][:(!]

来自: wxh2051200, 时间: 2004-04-10 10:53:44, ID: 2550565
哪维高说有实现好的源程序发给我一份好吗?邮箱wawxh@eyou.com

来自: flynow, 时间: 2004-04-10 13:40:41, ID: 2550846
to 山猫
也给我发一份,谢谢 aoha@sohu.com

来自: wwwmy, 时间: 2004-04-10 14:41:23, ID: 2550919
对于ACCESS数据库,我先压缩清理数据库,然后在采用控件备份,可大大减少文件大小,我有一个例子,想要的给出邮箱。

来自: wxh2051200, 时间: 2004-04-11 17:22:55, ID: 2552224
to wwwmy
我想要。我的邮箱是邮箱wawxh@eyou.com

来自: wxh2051200, 时间: 2004-04-11 17:23:48, ID: 2552227
山猫:
我也要!!
wawxh@eyou.com

来自: gyh75, 时间: 2004-04-11 21:33:20, ID: 2552472
SQL SERVER
备份
AdoQuery1.SQL.Text := Format('backup database gyhdb to disk = ''%s''',
['e:/gyhdbbak']);
showmessage(AdoQuery1.SQL.Text);
AdoQuery1.ExecSQL;

恢复
with ADOConnection1 do
begin
s := ConnectionString;
Connected := False;
Close;
Free;
ADOConnection2.ConnectionString := s;
ADOConnection2.DefaultDatabase := 'master';
ADOConnection2.Connected := True;
ADOQuery1.Connection := ADOConnection2;
AdoQuery1.SQL.Text := Format('restore database gyhdb from disk = ''%s'' with replace',
['e:/gyhdbbak']);
AdoQuery1.ExecSQL;
end;
ADOConnection1 := TADOConnection.Create(nil);
with ADOConnection1 do
begin
ConnectionString := s;
LoginPrompt := False;
Connected := True;
// ADOQuery1.Connection := ADOConnection1;
end;

来自: freewon, 时间: 2004-04-11 21:47:31, ID: 2552492
不知你用的什么数据库,如果是SYBASE或者ORACLE等大型数据库,
那数据库安装时就带有BCP等备份来恢复的工具软件。查查手册便知!

来自: wxh2051200, 时间: 2004-04-13 9:29:16, ID: 2555192
to rainboy5906
把你的远程序发给我好吗?我的邮箱是wawxh@eyou.com

来自: wxh2051200, 时间: 2004-04-13 21:01:20, ID: 2557044
to gyh75
把你的远程序发给我好吗?我的邮箱是wawxh@eyou.com



来自: zweny, 时间: 2004-04-15 8:50:20, ID: 2559921
to wwwmy
我想要。我的邮箱是邮箱zweny@vip.sina.com
谢谢!(无以言表!!)

问题讨论没有结束 ...
 
做项目的高手们,请帮一下吧,要实用的代码。特别是数据上报/接收的
 
后退
顶部