热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

长文本插入sqlserver的text字段后取出被截断问题

长文本插入sqlserver的text字段后取出被截断问题,将数十个汉字插入sqlserver2000的text字段,取出时只有大概16个字节,即被截断了,到数据库中查看字节是完整的,问题出在取出上,
长文本插入sqlserver的text字段后取出被截断问题,将数十个汉字插入sqlserver2000的text字段,取出时只有大概16个字节,即被截断了,到数据库中查看字节是完整的,问题出在取出上,各位高手,这个问题怎么解决?

15 个解决方案

#1


看你是怎么取的数据呀,应该不会有什么问题的

#2


代码贴出来 look 一下

#3


取得:
  ADODataSet1->Close();
  ADODataSet1->CommandText="SELECT iTXT FROM B_RFCX WHERE ID=1;";
  ADODataSet1->Open();
  ListBox1->Items->Text=Form1->ADODataSet1->FieldByName("iTXT")->AsString;
只有约16个字节的字符,剩余的被截断,到数据库中查看是完整的数百字节,并比对无误

#4


ADODataSet1在Form1上

#5


看一看数据库字段类型,有n和没n的区别挺大的。

#6


text(16)在bcb6下正常

#7


引用 6 楼 kfrght 的回复:
text(16)在bcb6下正常

你用的哪个版本? 

#8


少设定一个属性。。

#9


引用 8 楼 eyao213 的回复:
少设定一个属性。。

哪个属性?

用的bcb2010的ADODataSet,同样的代码在bcb6下正常,BCB2010下被截断

#10


用AsAnsiString,如:
Form1->ADODataSet1->FieldByName("iTXT")->AsAnsiString;

#11


引用 10 楼 ccrun 的回复:
用AsAnsiString,如:
Form1->ADODataSet1->FieldByName("iTXT")->AsAnsiString;


还是同样的问题,也被截断了

#12


用流也是一样的被截断了

#13


明白了原因了,搞定,见者有分

#14


没有错 是16个字节
如果你输入了16个汉字 只会得出8个汉字
一个汉字由两个字节组成的

#15


建议你用 varchar类型
不要用Text 类型 避免的无辜的意外

推荐阅读
author-avatar
deadman21
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有