如题,我需要将位图存入image字段里,位图存储路径固定,sql server有没有提供函数或存储过程能直接把位图文件存入image字段里? 
  如果没有,希望各位能提供给我一段例子,展示怎么在前台把位图文件转化为二进制流,我用的是MFC  VS2003环境 
  谢谢

解决方案 »

  1.   


    void   AdoRst::FileToBinaryField(CString   FieldName,CString   FileName)   
      {   
      _variant_t   vtFld;   
      _variant_t   vtIndex;   
      try
      {   
        
        if(rs==NULL)   return   ;   
        if(rs->State!=adStateOpen)   return   ;   
        CString   str   =   _T("");   
        vtIndex.SetString(FieldName);   
        CFile   myfile;   
        CFileException   e;   
        //打开文件   
        if(   !myfile.Open(FileName,   CFile::modeRead,   &e   )   )   
        {   
           return;   
        }   
        BYTE*   pbuf;   
        long   len   =   myfile.GetLength();   
        pbuf   =   new   BYTE[len];   
        if(pbuf   ==   NULL)   
           return;                                     //allocate      memory   error;   
        myfile.ReadHuge(pbuf,len);      //read   the   file  into  memory   
        BYTE   *pBufEx;   
        pBufEx   =   pbuf;   
        // 构造安全数组并放到一个varint变量中   
        
        SAFEARRAY*   psa;   
        SAFEARRAYBOUND   rgsabound[1];   
        rgsabound[0].lLbound   =   0;   
        rgsabound[0].cElements   =   len;   
        psa   =   SafeArrayCreate(VT_UI1,   1,   rgsabound);   
        for(long   i   =   0;   i   <   len;   i++)   
          SafeArrayPutElement(psa,   &i,   pBufEx++);   
        _variant_t   varBLOB;   
        varBLOB.vt   =   VT_ARRAY   |   VT_UI1;   
        varBLOB.parray   =   psa;   
        delete   []pbuf;   
        myfile.Close();   
        if(len>0)   
        vtFld   =   rs->Fields->GetItem(vtIndex)->AppendChunk(varBLOB);   
        
        
        }
        catch(...)   
        {   
           return;   
        }   
      }