用Access的实用工具中的压缩数据库。

解决方案 »

  1.   

    这是我最近编的,copy 给你,还过我用的是ADO 和SQL
    void CAddText::OnAddButton() 
    {
    //在这里我想要考虑到这条记录在库中已有的情况,待做!
     MessageBox("此操作将对数据产生影响,确定你的操作吗?","警告",MB_YESNO|MB_ICONQUESTION);
         CString vBH;
         CString vJYAQ;
         CString vWTDW;
         CString vWTSJ;
         BOOL Checkit=0;//标识     CFejaDoc *pDoc;
         pDoc=GetDocument(); //指向Document的指针
         _RecordsetPtr pRecordSet;//指向一个RecordSet类的智能指针
     pRecordSet.CreateInstance(__uuidof(Recordset));
         _variant_t vRecsAffected(0L); //_variant_t类封装了OLE自治VARIANT数据类型
         
     UpdateData(true);
        
         Checkit=m_bh =="";//这时可能要可入对各个表主键的校正
     if(Checkit==1)
     {
     MessageBox("检案号不能为空,无法加入新的资料!","错误",MB_RETRYCANCEL|MB_ICONQUESTION);
     return;
      }
     else
    {
      vBH=m_bh;
      vJYAQ=m_jyaq;
      vWTDW=m_wtdw;
      vWTSJ=m_wtDate;
    }

        //产生导航树
    _bstr_t bstrQuery("SELECT FEJA_ID FROM AJJR_TAB WHERE FEJA_ID='");
        bstrQuery+=(LPCTSTR)vBH;
    bstrQuery+="'";
    try
    {
    pRecordSet=pDoc->m_pConnection->Execute(bstrQuery,&vRecsAffected,adOptionUnspecified);
    if(!pRecordSet->GetadoEOF())
    {
    //_variant_t vFejah;
    //vFejah=pRecordSet->GetCollect(L"FEJA_ID");
       // MessageBox((_bstr_t)vFejah);
     MessageBox("这条数据在数据库中已有,请检查!","错误",MB_RETRYCANCEL|MB_ICONQUESTION);
       
    }
    pRecordSet->Close();
    }
        catch(_com_error&e)
    {
    //Get info from _com_error
    TRACE("Error:%081x\n",e.Error());
    TRACE("ErrorMessage:%s\n",e.ErrorMessage());
    TRACE("Source:%s\n",(LPCTSTR)_bstr_t(e.Source()));
    TRACE("Description:%s\n",(LPCTSTR)_bstr_t(e.Description()));
    }
        _bstr_t bstrInsert("INSERT INTO AJJR_TAB (FEJA_ID,WTDW,WTSJ,JYAQ) VALUES('");
        bstrInsert+=(LPCTSTR)_bstr_t(vBH);
        bstrInsert+="','";
        bstrInsert+=(LPCTSTR)_bstr_t(vWTDW);
        bstrInsert+="','";
        bstrInsert+=(LPCTSTR)_bstr_t(vWTSJ);
        bstrInsert+="','";
        bstrInsert+=(LPCTSTR)_bstr_t(vJYAQ);
        bstrInsert+="')";
         try
     {
      pRecordSet=pDoc->m_pConnection->Execute(bstrInsert,&vRecsAffected,adOptionUnspecified);
      pRecordSet->AddNew();
      pRecordSet->Update();
      pRecordSet->Close();
     }
         catch(_com_error&e)
     {
    //Get info from _com_error
    TRACE("Error:%081x\n",e.Error());
    TRACE("ErrorMessage:%s\n",e.ErrorMessage());
    TRACE("Source:%s\n",(LPCTSTR)_bstr_t(e.Source()));
    TRACE("Description:%s\n",(LPCTSTR)_bstr_t(e.Description()));
     }
      
          GetDocument()->m_pMyTreeView->OnPopulateTree_FEJAH ();
          UpdateData(false);}
      

  2.   

    只要建立数据通道,对acess 和 SQL是一样的!