我今天在做一个WEB页面时,从SQL库中读取其中一个字段值时,没有显示出来,也没有报错!!这个字段的类型是text类型,可以在SQL查询分析器里面查的倒,打开数据库里面也有值,但是在页面上却输不出来,如果把它转化成varchar类型就能输出来,但我的那个字段必须用一个备注型的数据类型,一用text就是输不出来,这是为什么呢?
后来上网查了些资料,找到如下原因及解决方法
原因
SQL Server 的 "Text" 和 "ntext" 数据类型是数据库里的 BLOB(2进制大对象)一个 BLOB 是一个大文件. 典型的 BlOB 是一张图片或一个声音文件,由于它们的尺寸,必须用特殊的方式处理.
解决方法
当使用 UltraDev 的 ASP server (ADO) 对 Microsoft SQL Server 的 BLOB 域做动作时,
你的 SQL statements 的 "SELECT" 子句必须在读所有非 BLOB 列后再 读 BLOB 类型列的值.
为了安全, 你还应当维持在数据库里列的从左到右的次序. 如果你选择在你的数据集的最后两列放两个 BLOB 列, 必须先读前一个再读后一个.不要颠倒次序.
也就是说,我们不是要注意在数据库表中"Text" 或"ntext" 类型的字段排在最后,而是要注意"SELECT" 子句中"Text" 或"ntext" 类型的字段排在最后。如果有一列以上的"Text" 或"ntext" 类型的字段,要注意它们在数据库表中的顺序。
这样的话这种奇怪的问题就解决了。。。
原载: No.1网络工作室 http://www.noonenet.cn/