程序问题:可以从SQL数据库中获取图片字段的,但获取以后的文件和存放在数据库字段中的文件的前2个字节(16位)不同,其他都相同,请问这是什么原因?程序如下
    ::CoInitialize(NULL);
    _RecordsetPtr pRs = NULL;
    _ConnectionPtr pConnection = NULL;
    _variant_t varChunk;
    HRESULT hr;
    VARIANT varBLOB;
    _bstr_t strCnn("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=kn;Data Source=andrew");    
    try
    {
        //Open a connection
        pConnection.CreateInstance(__uuidof(Connection));
        hr = pConnection->Open(strCnn,"","",NULL);        
        pRs.CreateInstance(__uuidof(Recordset));
        pRs->Open("select * from users where id=2",_variant_t((IDispatch *) pConnection,true),adOpenKeyset,adLockOptimistic,adCmdText);
       //read  data  
       long lDataLength = pRs->Fields->GetItem("image")->ActualSize;
   varBLOB = pRs->GetFields()->GetItem("image")->GetChunk(lDataLength);
      
      if(varBLOB.vt == (VT_ARRAY | VT_UI1))        
      {
            BYTE *pBuf = NULL;   
            pBuf = (BYTE*)GlobalAlloc(GMEM_FIXED,lDataLength);
            SafeArrayAccessData(varBLOB.parray,(void **)pBuf); 
            CFile outFile("d:\\3.TXT",CFile::modeCreate|CFile::modeWrite);
            LPSTR buffer = (LPSTR)GlobalLock((HGLOBAL)pBuf);
            outFile.WriteHuge(buffer,lDataLength);
            GlobalUnlock((HGLOBAL)pBuf);
            outFile.Close();           
            SafeArrayUnaccessData (varBLOB.parray);
       }
     }
    catch(_com_error &e)
    {
        // Notify the user of errors if any.
        _bstr_t bstrSource(e.Source());
        _bstr_t bstrDescription(e.Description());
        CString sError;
        sError.Format("Source : %s \n Description : %s\n",(LPCSTR)bstrSource,(LPCSTR)bstrDescription);
        AfxMessageBox(sError);     

        pRs->Close();
        pConnection->Close();
::CoUninitialize();