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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值