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

时间:2021-11-14 04:41:22
我采用如下方法: 有时候得到的长度正常,有时不正常
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;

11 个解决方案

#1


问题哟可能出在何处〉?

#2


用上述方法操作IMAGE字段完全正常

#3


http://expert.csdn.net/Expert/topic/1674/1674585.xml?temp=.6833765

#4


是不是变量定义有误,ntext是字符串变量,定义为静态字符数组不一定合适.

#5


怎么不正常?

#6


select datalength(text列) 字节数,len(text列) 字符数 from 表

#7


我使用的是odbcapi函数,楼上老哥说得不太适合

#8


例如:text字段里面存放了一篇文章,可以读取出来文章的内容,文章的长度不正确要比实际要长

#9


还搞不定吗?我的例子是可用的,还有什么问题吗?

#10


我在看看

#11


如果你是用ADO的话,你可以这样得到

lngLogoSize = pRstPubInfo->Fields->Item["logo"]->ActualSize;

#1


问题哟可能出在何处〉?

#2


用上述方法操作IMAGE字段完全正常

#3


http://expert.csdn.net/Expert/topic/1674/1674585.xml?temp=.6833765

#4


是不是变量定义有误,ntext是字符串变量,定义为静态字符数组不一定合适.

#5


怎么不正常?

#6


select datalength(text列) 字节数,len(text列) 字符数 from 表

#7


我使用的是odbcapi函数,楼上老哥说得不太适合

#8


例如:text字段里面存放了一篇文章,可以读取出来文章的内容,文章的长度不正确要比实际要长

#9


还搞不定吗?我的例子是可用的,还有什么问题吗?

#10


我在看看

#11


如果你是用ADO的话,你可以这样得到

lngLogoSize = pRstPubInfo->Fields->Item["logo"]->ActualSize;