首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

MFC数据库操作,该如何处理

2012-06-06 
MFC数据库操作实现一个备份的功能:对fas.mdb文件复制因为在程序中有保持对数据库的连接所以想在备份之前关

MFC数据库操作
实现一个备份的功能:对fas.mdb文件复制因为在程序中有保持对数据库的连接
所以想在备份之前关闭连接,复制完成之后再打开
但是复制完之后就打不开连接了,注释掉复制是可以的,请问下这是为什么
复制是做成一个函数的

C/C++ code
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 ;}




[解决办法]
直接使用copy文件多好,为什么要自己读出来再写进去呢
[解决办法]
首先打开了的文件记得关闭(在函数CommonCopyFile里的各分支控制好);
其次为啥不直接复制文件,而要读写呢;
[解决办法]
system("copy file1 file2");

热点排行