2000里打开文件的方式和98不一样,98一般用只读打开的时候,别的进程也不能删除,但在2000里,确不影响删除.

解决方案 »

  1.   

    strSQL.Format("SELECT * FROM nldtemp");
    conn.ExecuteSQL((_bstr_t)(LPCTSTR)strSQL);

    //强行拷贝,存在则覆盖
    CopyFile(srcfile,tarfile,FALSE); while (!conn.m_pRecordset->adoEOF)
    {
    _variant_t vf1 = conn.m_pRecordset->GetCollect("f1");
    CString strf1;
    strf1.Format("%s",(LPCTSTR)(_bstr_t)vf1);
    _variant_t vf3 = conn.m_pRecordset->GetCollect("f3");
    CString strf3;
    strf3.Format("%s",(LPCTSTR)(_bstr_t)vf3);
    _variant_t vf4 = conn.m_pRecordset->GetCollect("f4");
    CString strf4;
    strf4.Format("%s",(LPCTSTR)(_bstr_t)vf4);
    _variant_t vf7 = conn.m_pRecordset->GetCollect("f7");
    CString strf7,tempy,tempm,tempd;
    strf7.Format("%s",(LPCTSTR)(_bstr_t)vf7);
    tempy = strf7.Left(strf7.Find("-",0));
    strf7 = strf7.Right(strf7.GetLength()-strf7.Find("-",0)-1);
    tempm = strf7.Left(strf7.Find("-",0));
    strf7 = strf7.Right(strf7.GetLength()-strf7.Find("-",0)-1);
    tempd = strf7;
    strf7.Format("%s/%s/%s",tempm,tempd,tempy.Right(2));
    TRACE("f1 field : %s\n",strf1);
    TRACE("f3 field : %s\n",strf3);
    TRACE("f4 field : %s\n",strf4);
    TRACE("f7 field : %s\n",strf7); CString Sql;
    Sql.Format("INSERT INTO %s(f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20) VALUES('%s','','%s','%s','','',DATE(%s,%s,%s),'',0.00000,'',0.00000,'','','','',0.00000,0.00000,0.00000,'',0.00000)",
    tempfile,strf1,strf3,strf4,tempy,tempm,tempd);
    conn.ExecuteSQL((_bstr_t)(LPCTSTR)Sql,FALSE); conn.m_pRecordset->MoveNext();
    }
    conn.m_pConnection->Close(); //CString ldfile;
    //ldfile.Format("%s\\%s.dbf",path,ldtable);
    //DeleteFile(ldfile);
    if(!CopyFile(tarfile,ldfile,FALSE))
    {
    dw=GetLastError();
    TRACE("Copy %s to %s Error,the Error code is %d\n",tarfile,ldfile,dw);
    }
    if(!DeleteFile(ldtfile))
    {
    dw=GetLastError();
    TRACE("Delete %s Error,the Error code is %d",ldtfile,dw);
    }
    if(!DeleteFile(tarfile))
    {
    dw=GetLastError();
    TRACE("Delete %s Error,the Error code is %d\n",tarfile,dw);
    }