才提的问题正么不见了?重提: 备份数据问题(100分)

  • 主题发起人 主题发起人 yihui
  • 开始时间 开始时间
Y

yihui

Unregistered / Unconfirmed
GUEST, unregistred user!
程序中使用了多个Paradox数据文件,如何实现备份于恢复的功能?
是用batchmove或便代码对表一个一个的复制?
能否备份多个文件为一个文件,恢复时全部还原?
 
没有人愿意帮我吗?
 
用压缩控件不知行否,关注!!
 
整个表COPY 的方法最快.
BDE 函数和使用如下:
procedure TConvertForm.CopyTable(FromDir, SrcTblName, ToDir, DestTblName: St
ring);

var

DBHandle: HDBIDB;

ResultCode: DBIResult;

Src, Dest, Err: Array[0..255] of Char;

SrcTbl, DestTbl: TTable;

begin

SrcTbl := TTable.Create(Application);

DestTbl := TTable.Create(Application);

try

SrcTbl.DatabaseName := FromDir;

SrcTbl.TableName := SrcTblName;

SrcTbl.Open;

DBHandle := SrcTbl.DBHandle;

SrcTbl.Close;

ResultCode := DbiCopyTable(DBHandle,false,

StrPCopy(Src,FromDir + '/' + SrcTblName),nil,

StrPCopy(Dest,ToDir + '/' + DestTblName));

if (ResultCode <> DBIERR_NONE) then

begin

DbiGetErrorString(ResultCode,Err);

raise EDatabaseError.Create('While copying ' +

FromDir + '/' + SrcTblName + ' to ' +

ToDir + '/' + DestTblName + ', the '

+ ' database engine generated the error '''

+ StrPas(Err) + '''');

end;

finally

SrcTbl.Free;

DestTbl.Free;

end;

end;



procedure TConvertForm.DeleteTable(Dir, TblName: String);

var

DBHandle: HDBIDB;

ResultCode: DBIResult;

tbl, Err: Array[0..255] of Char;

SrcTbl, DestTbl: TTable;

SrcTbl := TTable.Create(Application);

try

SrcTbl.DatabaseName := Dir;

SrcTbl.TableName := TblName;

SrcTbl.Open;

DBHandle := SrcTbl.DBHandle;

SrcTbl.Close;

ResultCode := DbiDeleteTable(DBHandle,

StrPCopy(Tbl,Dir + '/' + TblName),nil);

if (ResultCode <> DBIERR_NONE) then

begin

DbiGetErrorString(ResultCode,Err);

raise EDatabaseError.Create('While deleting ' +

Dir + '/' + TblName + ', the database ' +

'engine generated the error '''

+ StrPas(Err) + '''');

end;

finally

SrcTbl.Free;

end;

end;

签名档:王XX原创文章,请勿转载
 
使用时, 要引用上 BDE 单元

unit xxxx;
uses windows,messages,sysutils,.........,bde;
 
多谢几位。
to wzw 压缩控件是干社么的?
to 王兄 你的代码我仙仔细看看。
回头见
 
备份多个文件为一个文件,恢复时全部还原有什么思路吗?
比如飞天餐饮管理工具中讲menudb目录下所有数据库文件备份为一个menudb.bck.
恢复时从menudb.bck中还原
 
备份完后, 你可以用压缩控件把 数据库压缩到一起。 就象WINZIP ,WINRAR那样
恢复的时候再用解压缩控件释放开就行了。
压缩控件有很多。
可以到 http://www.51delphi.com 去下载, 先到那里的技术论坛注册一个会员
然后用会员ID登陆进去就可以看到下载控件了。在压缩控件 分类里有zlib, vclzip,xceed
都可以用
 
多人接受答案了。
 
后退
顶部