关闭

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

标签: 数据库sqlc
655人阅读 评论(0) 收藏 举报
分类:

从数据库中读大于 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;
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:148333次
    • 积分:1833
    • 等级:
    • 排名:千里之外
    • 原创:20篇
    • 转载:69篇
    • 译文:0篇
    • 评论:36条
    最新评论
    工作