asp读取sql数据库text和ntext类型字段内容

在SQL Server Management Studio能查到sqlserver 2008数据库text类型的字段中有数据,但是asp取不了值。

问题解决方案

1、由于在同一表中有一时间类型字段,它位于这个text型字段之前,而读取时,是先读的text型字段内容。 我将读取顺序和表中定义的顺序一致,则正确显示出text型字段内容。

2、将select中的text字段放到最后。 eg: select *,text from example。

网上其他的相关解释:

那些字段应该是text或ntext类型而且你使用了set rs = conn.execute(sql)这种方法来读取。

说明:
首先我们应该了解这两个类型的字段到底有什么不同:
虽然看起这他们是叫TEXT,但他不是用来保存文本的,实际上是用来保存文件,和IMAGE类型一样的,一般用来保存MIME类型的数据.
而我把它用来保存新闻的主体内容了,这样能存的更多.结果老是读取不出来
我用的是ADO连接,在读取数据时,因为习惯了以前ASP的写法,用conn.execute()来读取,这种读取对存MIME类型的字段是无效的,所以改成rs.open的方法来读取就好了
那么这两种执行方法在本质上有什么不同?在处理MIME类型上有什么不同呢?
个人认为用conn.execute()方式得到的RS里对MIME类型应该只是得到了一个索引,而用rs.open()的方式得到的应该是MIME类型的内容吧!
对两种方式得到的RS的字节大小做个比较应该能说明结果.
那么在应用时,在仅列出索引,标题什么的时,用conn.execute(). 在要显示完整内容时用rs.open(),是否这样能提高不少性能?

附rs.open使用方法:

rs.open sql,conn,1,1
rs.open sql,conn,1,3
 
RS.OPEN SQL,CONN,A,B 
A: 
ADOPENFORWARDONLY(=0) 
只读,且当前数据记录只能向下移动 
ADOPENKEYSET(=1) 
只读,当前数据记录可自由移动 
ADOPENDYNAMIC(=2) 
可读写,当前数据记录可自由移动 
ADOPENSTATIC(=3) 
可读写,当前数据记录可自由移动,可看到新增记录 

B: 
ADLOCKREADONLY(=1) 
缺省锁定类型,记录集是只读的,不能修改记录 
ADLOCKPESSIMISTIC(=2) 
悲观锁定,当修改记录时,数据提供者将尝试锁定记录以确保成功地编辑记录。
只要编辑一开始,则立即锁住记录。 
ADLOCKOPTIMISTIC(=3) 
乐观锁定 ,直到用Update方法提交更新记录时才锁定记录。 
ADLOCKBATCHOPTIMISTIC(=4) 
批量乐观锁定,允许修改多个记录,只有调用UpdateBatch方法后才锁定记录。 
当不需要改动任何记录时,应该使用只读的记录集,这样提供者不用做任何检测。 
对于一般的使用,乐观的锁定可能是最好的选择,因为记录只被锁定一小段时间, 
数据在这段时间被更新。这减少了资源的使用。

About 智足者富

http://chenpeng.info

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>