使用DB-Library如何分块获得TEXT类型的数据???

MagicLD 2001-12-06 02:28:51
RETCODE DBRET;
dbcmd( pReaderThread->DBReadProc,
"master..xp_sqltrace @function='trace',
@eventfilter=15,
@bufsize=20000,
@timeout=10,
@FullText=1,
@IntegerEvents=1");
DBRET=dbsqlexec(pReaderThread->DBReadProc);
unsigned char TEST[5120];
dbresults(pReaderThread->DBReadProc);
dbbind(pReaderThread->DBReadProc,8,STRINGBIND,(DBINT) 5120,(unsigned char *)TEST);
DBRET=dbnextrow(pReaderThread->DBReadProc);
while (DBRET!=NO_MORE_ROWS)
{
LogFile.Write(TEST,5120);
DBRET=dbnextrow(pReaderThread->DBReadProc);
}

解释:
这段代码使用DB-Library执行存储过程master..xp_sqltrace。
master..xp_sqltrace返回的结果集的第8列是TEXT类型的访问SQLServer的命令内容。
可是当我执行了一个字符数量超过4096的命令(例如建一个存储过程,存储过程的内容中字符数有8000多)后,
变量TEST只有命令的前4096个字符。
调整了dbbind函数的第3个参数,可是换成其它的变量故障依旧
使用dbdata代替dbbind函数获得返回数据,故障依旧
使用DBSETLPACKET函数设置了终端与数据库的TDS包的大小,设置成8192故障依旧
以为是缓冲区的问题,可是调用几次dbdata函数都只返回命令的前4096个字符
字符串数组是不是只能容纳4096个字符???????????????????????

哪位高手能不能给帮帮忙????
...全文
65 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
MagicLD 2001-12-06
  • 打赏
  • 举报
回复
大伙再看看
MagicLD 2001-12-06
  • 打赏
  • 举报
回复
用DB-Library的人都没有看见我的问题????
MagicLD 2001-12-06
  • 打赏
  • 举报
回复
没有人用DB-Library吗?????????

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧