MFC数据库操作

soulenvy 2012-06-04 10:00:38
实现一个备份的功能:对fas.mdb文件复制因为在程序中有保持对数据库的连接
所以想在备份之前关闭连接,复制完成之后再打开
但是复制完之后就打不开连接了,注释掉复制是可以的,请问下这是为什么
复制是做成一个函数的
BOOL CFasSysManaDlg::CommonCopyFile(CString SourceFileName, CString DestFileName)
{
CFile sourceFile ;
CFile destFile ;
CFileException ex;
if (!sourceFile.Open((LPCTSTR)SourceFileName,CFile::modeRead | CFile::shareDenyWrite, &ex))
{
TCHAR szError[1024];
ex.GetErrorMessage(szError, 1024);
CString ErrorMsg = "打开文件:" ;
ErrorMsg += SourceFileName ;
ErrorMsg += "失败。\n错误信息为:\n" ;
ErrorMsg += szError ;
AfxMessageBox(ErrorMsg);
return FALSE ;
}
else
{
if (!destFile.Open((LPCTSTR)DestFileName, CFile::modeWrite | CFile::shareExclusive | CFile::modeCreate, &ex))
{
TCHAR szError[1024];
ex.GetErrorMessage(szError, 1024);
CString ErrorMsg = "创建文件:" ;
ErrorMsg += DestFileName ;
ErrorMsg += "失败。\n错误信息为:\n" ;

ErrorMsg += szError ;
AfxMessageBox(ErrorMsg);
sourceFile.Close();
return FALSE ;
}


BYTE buffer[4096];
DWORD dwRead;
do
{
dwRead = sourceFile.Read(buffer, 4096);
destFile.Write(buffer, dwRead);
}
while (dwRead > 0);
destFile.Close();
sourceFile.Close();
}
return TRUE ;

}


...全文
113 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2012-06-05
  • 打赏
  • 举报
回复
system("copy file1 file2");
prohibit 2012-06-05
  • 打赏
  • 举报
回复
首先打开了的文件记得关闭(在函数CommonCopyFile里的各分支控制好);
其次为啥不直接复制文件,而要读写呢;
jiuchang 2012-06-05
  • 打赏
  • 举报
回复
直接使用copy文件多好,为什么要自己读出来再写进去呢
soulenvy 2012-06-05
  • 打赏
  • 举报
回复
谢谢各位,完美解决,用CopyFile不要关闭连接的

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧