请教copyfile的问题,实在不好意思,分不多了(25分)

  • 主题发起人 主题发起人 cf0129
  • 开始时间 开始时间
C

cf0129

Unregistered / Unconfirmed
GUEST, unregistred user!
我用copyfile函数拷贝文件后,得到的文件名称是什么,譬如:copyfile(a1,a2,false)

在数据库的备份和恢复用copyfile是不是一个比较好的方法????
 
Copyfile中的 a2就是拷贝后的文件名啊,数据库备分如果是本地数据库的话,应该没问题
,只是你得注意copyfile时出现的意外,好象以前管家婆就是这样做的吧,不过它还用了个arj压缩
 
var
sSourceFileDirNameExt : String;
sDestFileDirNameExt : String;
begin
with opendialog1 do
begin
title:='数据恢复';
initialdir:='E:/backup/database';{设置默认文件目录}
filter:='database(*.mdb)|*.mdb|';{设置文件过滤条件}
ADOConnection1.Close;
if Execute then
begin
try
sSourceFileDirNameExt:=opendialog1.FileName;
sDestFileDirNameExt:='e:/adomis(y)/database/db1.mdb';
copyfile(pchar(sSourceFileDirNameExt),pchar(sDestFileDirNameExt),false);
ADOConnection1.Open;

except
MessageBox(Handle,'打开数据库失败,请检查数据库是损坏.','内行系统信息',MB_OK+MB_ICONERROR);
Exit;
end;
end;
end;
怎么不行啊
 
The CopyFile function copies an existing file to a new file.
BOOL CopyFile(
LPCTSTR lpExistingFileName, // pointer to name of an existing file
LPCTSTR lpNewFileName, // pointer to filename to copy to
BOOL bFailIfExists // flag for operation if file exists
);
Parameters
lpExistingFileName
Points to a null-terminated string that specifies the name of an existing file.
lpNewFileName
Points to a null-terminated string that specifies the name of the new file.
bFailIfExists
Specifies how this operation is to proceed if a file of the same name as
that specified by lpNewFileName already exists. If this parameter is TRUE and
the new file already exists, the function fails. If this parameter is FALSE
and the new file already exists, the function overwrites the existing file and
succeeds.

数据库备分恢复有这样文件复制当然不好,不知道sqlserver他们是怎么做的,肯定不是拷贝
文件的
 
》来自:cf0129, 时间:2002-3-30 8:57:00, ID:1011789
》怎么不行啊

有什么提示出错信息? 还是运行顺利,但是没有备份?
 
是可以顺利运行,但是没有恢复成功,总是当前的数据库。我的程序有错误吗???
 
to cf0129:
可以恢复的。我试过了。可能什么地方设置错了吧。如Adoconnection原来连什么之类的。
我用AdoConnection先连mydb,open一个表,然后用下面的程序。
把mydb2拷贝到mydb,tablename换成mydb2中的表,copy成功。把逻辑想清楚。
procedure TForm1.Button2Click(Sender: TObject);
var
sSourceFileDirNameExt : String;
sDestFileDirNameExt : String;
begin
with opendialog1 do
begin
title:='数据恢复';
initialdir:='E:/backup/database';{设置默认文件目录}
filter:='database(*.mdb)|*.mdb|';{设置文件过滤条件}
AdoTable1.Close;
ADOConnection1.Close;
if Execute then
begin
try
sSourceFileDirNameExt:=opendialog1.FileName;
// sDestFileDirNameExt:='e:/adomis(y)/database/db1.mdb';
sDestFileDirNameExt:='e:/dfwtest/test4/mydb.mdb';
copyfile(pchar(sSourceFileDirNameExt),pchar(sDestFileDirNameExt),false);
ADOConnection1.Open;
adotable1.TableName := 'cstable';
adotable1.Open;
except
MessageBox(Handle,'打开数据库失败,请检查数据库是损坏.','内行系统信息',MB_OK+MB_ICONERROR);
Exit;
end;
end;
end;
end;
 
后退
顶部