ASP  Field对象
每个Recordset对象包含由Field对象组成的Fields集合,每个Field对象代表结果集合中的一列数据,通过使用Field对象能够获得结果集合中每一列字段的详细信息。Field对象的属性、方法和集合如表9-9所示。Fields集合的属性、方法如表9-10所示。
表9-9  Field对象的属性、方法和集合
类型
名称
解释
属性
ActualSize
返回字段的实际长度
Attributes
规定对字段值的处理特性
DefinedSize
返回字段的定义长度
Name
返回字段名
NumericSale
指定数值型字段值所精确到的小数点的位数
OriginalValue
取得记录集中字段未被修改前的原始值
Precision
指定数值型字段值所允许的最大位数
Type
返回字段的数据类型
UnderyingValue
取得数据源中字段的当前值
Value
表示字段在记录集中的当前值
方法
AppendChunk
把长文本或二进制数据合并到字段中
GetChunk
从字段中取出长文本或二进制数据中的部分或全部内容
集合
Properies
Field 对象属性集合
表9-10  Fields集合的属性、方法
名称
解释
Count
属性,返回 Fields 集合中的字段数目
Item
属性,利用参数 Index 访问 Fields 集合中的指定字段
Refresh
方法,刷新 Fields 集合
对数据的查询、新增、删除及修改等操作并不是直接对着数据源进行的。在应用程序和数据源之间有一个数据缓冲区,在ASP中称为Fields集合或记录集,如图9-6所示。
图9-6  Fields集合的作用
一个Recordset对象实例拥有一个Fields集合,该集合对应着数据源中的一张数据表,根据程序处理需要,包含数据表全部或部分的字段以及全部或部分的数据记录。把数据表的每一列定义为一个Field对象,那么,从数据表中取了多少列数据就有多少个Field对象。由于一条数
据记录被拆分到各个Field对象中,为了保证数据记录的一致性,指针相当重要。任意时刻,指针都唯一地指向一条记录,这条记录称为当前记录,指针的移动控制由Recordset完成。具体地说,是Recordset的7个指针属性管理了指针的移动。
Field对象的属性分为两类:字段属性和记录属性。
Field对象的字段属性有字段名、字段定义长度、字段实际长度和数据类型,对于数值型字段,还有小数点的位置和允许记录的最大数值范围,这些属性都和数据库中相应的字段属性是一致的。Field对象有一个特殊属性,即Attributes,它表示某字段在当前指针位置的数据值的属性,其取值见表9-11。
表9-11  Attributes属性值
常量
说明
AdFldMayEFER
2
不允许重新由数据库更新数据
AdFldUpdatable
4
asp数据允许写入
AdFldUnknowUpdatable
8
不能确定是否可以写入
AdFldFixed
16
固定长度
AdFldIsNullable
3
可以输入空值
AdFldMayBeNull
64
可以读取空值
AdFldLong
128
该字段数据类型为长二进制
AdFldRowID
25
包含行标识符
AdFldRowVersion
512
显示该字段内数据最后一次更新的时间
AdFldCacheDferred
4096
可以从缓存中读取该字段数据
Field对象的记录属性有实际值(Value)、初始值(OriginalValue)和数据源值(UnderlyingValue),在数据表中,某字段的当前记录只有一个数据,在ADO中,为了方便数据的处理,用3个属性来记录这个值。调用Recordset对象的CancelUpdate和CancelBatch方法,就可以将修改后的各字段值(Value)恢复为相应的OrignalValue,OrignalValue是为了修改后恢复原值而使用的。UnderlyingValue属性和OrignalValue不同,UnderlyingValue返回的是数据库中的当前值,OrignalValue返回的是打开Fields集合时的初始值,在此期间,数据源中值可能已经被其他用户更新过了,从而造成两个属性值不相等。通过判断这两个属性值,可以解决多用户批处理冲突问题。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。