BSTR *strXML   这是返回的内容

_bstr_t strContent;
strContent=pRs->Fields->GetItem(L"Sctsct")->Value ;
*strXML=strContent.copy();
pRs->Close();
-----------------------------------------------------------------
CFile myFile;
myFile.Open("D:\\scott.txt", CFile::modeCreate|CFile::modeReadWrite ,NULL);
char * x = strContent;//pubHere.ConStrToServer; //pubHere.ConStrToServer;
myFile.Write(x,strlen(x));
myFile.Close();
CString str;
str.Format("%d",strlen(x));
::AfxMessageBox(str);
//////////////////////////
我把读出的内容写出来,并且把长度打印出来,才得到我描述的那个结论,是不是因为text里面包含汉字,导致长度计算有误,所以读出来的就变短了阿?

解决方案 »

  1.   

    在XP下才有这种情况,在2000下就没有问题。数据库SQL2000中text类型的字段在XP下对某些纪录读出的长度比实际少。应该不是代码的问题,因为在2000下没有问题。
    在XP下读出的长度没有规律性,比如有些字段内容实际7000个字节,但能全读出来。但有的只有5000个字节,却读不全,只读出3000字,请高手们估计一下这是什么原因阿?text栏位存放的是xml文件
      

  2.   

    BSTR *strXML  change the type to _bstr_t