RT,谢谢

解决方案 »

  1.   

    http://www.oracle.com/technology/sample_code/tech/windows/ole_db/oledb8/index.html
      

  2.   

    CFile   f;  
      CString     FilePathName;  
      CFileException   e;  
       
      CFileDialog   dlg(TRUE,NULL,NULL,0,"jpg   Files   (*.jpg)|*.jpg|BMP   Files   (*.bmp)|*.bmp||",this);  
      if(dlg.DoModal()==IDOK)  
      {  
      FilePathName=dlg.GetPathName();  
       
      if(f.Open(FilePathName,   CFile::modeRead   |   CFile::typeBinary,   &e))    
      {  
       
      int   nSize   =   f.GetLength();                      
      BYTE   *   pBuffer   =   new   BYTE   [nSize];      
         
      if   (f.Read(pBuffer,   nSize)   >   0   )          
      {        
      BYTE   *pBuf   =   pBuffer;            
      VARIANT varBLOB;  
      SAFEARRAY *psa;  
      SAFEARRAYBOUND rgsabound[1];  
       
      try  
      {  
      m_pRecordset->AddNew();      
      m_pRecordset->PutCollect("TARGETID",_variant_t(strTargetID));  
      m_pRecordset->PutCollect("INTRODUCE",_variant_t(m_Intro));  
       
      if(pBuf)  
      {          
      rgsabound[0].lLbound   =   0;  
      rgsabound[0].cElements   =   nSize;  
      psa   =   SafeArrayCreate(VT_UI1,   1,   rgsabound);  
      for   (long   i   =   0;   i   <   (long)nSize;   i++)  
      SafeArrayPutElement   (psa,   &i,   pBuf++);  
      varBLOB.vt   =   VT_ARRAY   |   VT_UI1;  
      varBLOB.parray   =   psa;  
      m_pRecordset->GetFields()->GetItem("image")->AppendChunk(varBLOB);  
       
      }  
      m_pRecordset->Update();  
      }  
      catch(_com_error&   e)  
      {  
      CString   strComError;              
      strComError.Format("错误编号:   %08lx\n错误信息:   %s\n错误源:   %s\n错误描述:   %s",   \  
      e.Error(),                                     \  
      e.ErrorMessage(),                     \  
      (LPCSTR)   e.Source(),                 \  
      (LPCSTR)   e.Description());     \  
      ::MessageBox(NULL,strComError,"错误",MB_ICONEXCLAMATION);    
      return;  
      }      
      delete   []   pBuffer;            
      pBuf=0;                                
      }  
      f.Close();  
      }   
      

  3.   

    用ADO,操作应该都是一样的吧,AppendChunk....像二楼的代码那样...