※一刀の专栏

☆风云有意,一刀无情☆---------朴实和谐的生存环境,与世无争的处世心态,以自然之道,养自然之身。...

从数据库中读大于 32k 的内容?

从数据库中读大于 32k 的内容?

  我在从数据库中读数据时碰到了问题。当数据栏包含超过 32k 的内容时,我就读不出来,我试过 ODBC::SQLGetData() 也不行。
  哪种类型的数据库?MS SQL,SYBASE... 试试设置一下大小:

BOOL CGetBlobStmt::Execute(LPCTSTR stmt)
{
    m_cbSize = 0;
    m_size = 0;
    LPBYTE lpData;
    lpData = (LPBYTE)GlobalLock(m_hData);

    m_retcode = SQLSetStmtOption(GetHandle(),
        SQL_MAX_LENGTH,m_dwBytesLeft);

    m_retcode = SQLExecDirect(GetHandle(),(UCHAR*)stmt,SQL_NTS);
    if(m_retcode == SQL_SUCCESS)
    {
        m_retcode = SQLFetch(GetHandle());
        if(m_retcode == SQL_SUCCESS //m_retcode == SQL_SUCCESS_WITH_INFO)
        {
            m_retcode = SQLGetData(GetHandle(),1,SQL_C_BINARY,lpData,254,&m_cbSize);
            while(m_retcode == SQL_SUCCESS_WITH_INFO)
            {
                lpData+= 254;
                m_retcode = SQLGetData(GetHandle(),1,
                    SQL_C_BINARY,lpData,254,&m_cbSize);
            }
            GetError();
        }
    }
    GlobalUnlock(m_hData);
    #if TESTDATA
    TRACE("%ld",m_size);
    #endif

    SaveFile();

    return RETVALUE;
}


阅读更多
文章标签: 数据库 sql c
个人分类: 编程开发
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭