SQLSERVER2000中如何得到TEXT/NTEXT字段中内容的实际长度?

andy_lau 2003-04-21 11:38:12
我采用如下方法: 有时候得到的长度正常,有时不正常
case 20://text
case 12://ntext
/*===================================
基本思路:先得到text的长度,然后分段
进行读写。
====================================*/
char *pText;
char Buf[1024];
long cbTxtSize;
pText=NULL;
memset(Buf,0,1024);
cbTxtSize=0;
//得到text文本的长度
retcode=SQLGetData(hstmt,nColumnNumber,SQL_C_CHAR,Buf,1023,&cbTxtSize);
if(cbTxtSize>0) {
fp->Write(&cbTxtSize,4);
fp->Write(Buf,strlen(Buf));
}else{//text列为空
cbTxtSize=0;
fp->Write(&cbTxtSize,4);
return;
}
nNum=strlen(Buf);
while(retcode!= SQL_NO_DATA){
memset(Buf,0,1024);
retcode=SQLGetData(hstmt,nColumnNumber,SQL_C_CHAR,Buf,400,&cbTxtSize);
if ( retcode!= SQL_NO_DATA ){
fp->Write(Buf,strlen(Buf));
nNum+=strlen(Buf);
}
};
break;

...全文
170 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
small_wei 2003-04-22
  • 打赏
  • 举报
回复
还搞不定吗?我的例子是可用的,还有什么问题吗?
andy_lau 2003-04-22
  • 打赏
  • 举报
回复
例如:text字段里面存放了一篇文章,可以读取出来文章的内容,文章的长度不正确要比实际要长
andy_lau 2003-04-22
  • 打赏
  • 举报
回复
我使用的是odbcapi函数,楼上老哥说得不太适合
Jim3277 2003-04-22
  • 打赏
  • 举报
回复
如果你是用ADO的话,你可以这样得到

lngLogoSize = pRstPubInfo->Fields->Item["logo"]->ActualSize;
andy_lau 2003-04-22
  • 打赏
  • 举报
回复
我在看看
runnersun 2003-04-21
  • 打赏
  • 举报
回复
是不是变量定义有误,ntext是字符串变量,定义为静态字符数组不一定合适.
small_wei 2003-04-21
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1674/1674585.xml?temp=.6833765
andy_lau 2003-04-21
  • 打赏
  • 举报
回复
用上述方法操作IMAGE字段完全正常
andy_lau 2003-04-21
  • 打赏
  • 举报
回复
问题哟可能出在何处〉?
pengdali 2003-04-21
  • 打赏
  • 举报
回复
select datalength(text列) 字节数,len(text列) 字符数 from 表
maoxianwang 2003-04-21
  • 打赏
  • 举报
回复
怎么不正常?

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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