在线求救啊:如何把一个文件(.txt,.rar,.html)作为数据库一个字段插入数据库。在查询操作的时候又如何把她读出来啊!

解决方案 »

  1.   

    什么样的数据库阿?
    可以用ado组件去读取.
      

  2.   

    和下面的代码类似,下面读取的是图片HGLOBAL hgImageMem = NULL;
    LPVOID lpvImageMem = NULL; long lImageSize = rs->GetFields()->GetItem("图片")->ActualSize;if(lImageSize > 0)
    {
           _variant_t varImage;
           varImage = rs->GetFields()->GetItem("图片")->GetChunk(lImageSize);
          if(varImage.vt == (VT_ARRAY | VT_UI1))
    {

    hgImageMem = GlobalAlloc(GHND, lImageSize);
    if(hgImageMem!=NULL)
    {
       lpvImageMem = GlobalLock( hgImageMem);
       char *pBuffer= NULL;
       SafeArrayAccessData(varImage.parray,(void **)&pBuffer);
       CopyMemory(lpvImageMem,pBuffer,lImageSize);
       SafeArrayUnaccessData (varImage.parray);
                          CFile file("a.jpg",CFile::modeWrite|CFile::modeCreate);
       file.Write(lpvImageMem,lImageSize);
       file.Close();
                        }
                }
    } GlobalUnlock(hgImageMem);
    lpvImageMem=NULL;
    GlobalFree(hgImageMem);
      

  3.   

    储存图片 rs.CreateInstance(__uuidof(Recordset)); rs->Open("相片",_variant_t((IDispatch *)m_pConn,true), adOpenKeyset,
    adLockOptimistic, adCmdTable);
    rs->AddNew();
    _variant_t var;
    COleDateTime tDate;
    m_datePic.GetTime(tDate);
    var.vt=VT_DATE;
    var.date=tDate;
    rs->GetFields()->GetItem("拍摄日期")->Value=var;
    var.Clear();
    var.vt=VT_BSTR;
    var.bstrVal=strTheme.AllocSysString();
    rs->GetFields()->GetItem("主题名称")->Value=var;
    var.bstrVal=strId.AllocSysString();
    rs->GetFields()->GetItem("照片 ID")->Value=var;
    CFile file;
    if( !file.Open( m_strPicfile, CFile::modeRead) )
    return ;
    DWORD uFilesize =(DWORD) file.GetLength();
    char* pBuffer = new char[uFilesize + 1];
    if(pBuffer!=NULL)
    {
    ZeroMemory(pBuffer,uFilesize + 1);
    VERIFY(file.Read(pBuffer,uFilesize)==uFilesize); VARIANT varImage;
    SAFEARRAY *psa;
    SAFEARRAYBOUND  rgsabound[1]; rgsabound[0].lLbound = 0;
    rgsabound[0].cElements = uFilesize;
    psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
    for (long i = 0; i < (long)uFilesize; i++)
    SafeArrayPutElement (psa, &i, pBuffer++);
    varImage.vt = VT_ARRAY | VT_UI1;
    varImage.parray = psa;
    rs->GetFields()->GetItem("图片")->AppendChunk(varImage);

    }

    rs->Update();
    pBuffer=pBuffer-uFilesize;
    if(pBuffer)
    {
    delete [] pBuffer;
    pBuffer=NULL;
    }
    MessageBox("添加数据成功!","提示",MB_OK|MB_ICONINFORMATION);
    }
    catch (_com_error e)
    {
    PrintComError(e);
    } if(rs->State)
    rs->Close();
      

  4.   

    数据字段类型定义 image 类型