SQLSERVER2000中如何得到TEXT/NTEXT字段中内容的实际长度?
我采用如下方法: 有时候得到的长度正常,有时不正常
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;