我的数据库表里有一个image字段,我想在程序的运行界面上加入一张图片,输入图片的路径后,将这张图片存入数据库,这该怎么做呀,请各位大哥指点

解决方案 »

  1.   

    如果用ado按照如下操作
    //FieldPtr pField  是image字段
    //LPVOID lpData    是从文件中读取的数据
    //UINT nBytes      是数据的长度
    bool AppendChunk(FieldPtr pField, LPVOID lpData, UINT nBytes)
    {
    HRESULT hr;
    _variant_t varChunk;
    long lngOffset = 0;
    UCHAR chData;
    SAFEARRAY FAR *psa = NULL;
    SAFEARRAYBOUND rgsabound[1]; try
    {
    //Create a safe array to store the array of BYTES 
    rgsabound[0].lLbound = 0;
    rgsabound[0].cElements = nBytes;
    psa = SafeArrayCreate(VT_UI1,1,rgsabound); while(lngOffset < (long)nBytes)
    {
    chData = ((UCHAR*)lpData)[lngOffset];
    hr = SafeArrayPutElement(psa, &lngOffset, &chData); if(FAILED(hr))
    return false;

    lngOffset++;
    }
    lngOffset = 0; //Assign the Safe array  to a variant. 
    varChunk.vt = VT_ARRAY|VT_UI1;
    varChunk.parray = psa; hr = pField->AppendChunk(varChunk); if(SUCCEEDED(hr))
    return true;
    }
    catch(_com_error &e)
    {
    AfxMessageBox(e.description());
    return false;
    } return false;
    }