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