java recordset_adodb.recordset.open(rs.open)方法参数详解

ADORecordset对象是数据库操作的核心,它包含了记录集和列。Recordset支持立即更新和批更新两种模式,以及四种游标类型:动态游标、键集游标、静态游标和仅向前游标,每种游标有不同的滚动和数据可见性特性。此外,还有三种锁类型:只读、悲观和乐观锁定,分别对应不同的并发控制策略。Open方法的CursorType和LockType参数决定了这些行为,适配不同的数据操作需求。
摘要由CSDN通过智能技术生成

ADO Recordset 对象

ADO Recordset 对象用于容纳一个来自数据库表的记录集。一个 Recordset 对象由记录和列(字段)组成。

在 ADO 中,此对象是最重要且最常用于对数据库的数据进行操作的对象。

ProgID

set objRecordset=Server.CreateObject("ADODB.recordset")

当您首次打开一个 Recordset 时,当前记录指针将指向第一个记录,同时 BOF 和 EOF 属性为 False。如果没有记录,BOF 和 EOF 属性为 True。

Recordset 对象能够支持两种更新类型:

立即更新 - 一旦调用 Update 方法,所有更改被立即写入数据库。批更新 - provider 将缓存多个更改,然后使用 UpdateBatch 方法把这些更改传送到数据库。

在 ADO,定义了 4 中不同的游标(指针)类型:

•动态游标 - 允许您查看其他用户所作的添加、更改和删除

•键集游标 - 类似动态游标,不同的是您无法查看有其他用户所做的添加,并且它会防止您访问其他用户已删除的记录。其他用户所做的数据更改仍然是可见的。

•静态游标 - 提供记录集的静态副本,可用来查找数据或生成报告。此外,由其他用户所做的添加、更改和删除将是不可见的。当您打开一个客户端 Recordset 对象时,这是唯一被允许的游标类型。

•仅向前游标 - 只允许在 Recordset 中向前滚动。此外,由其他用户所做的添加、更改和删除将是不可见的。

可通过 CursorType 属性或 Open 方法中的 CursorType 参数来设置游标的类型。

注释:并非所有的提供者(providers)支持 Recordset 对象的所有方法和属性。

想了解更多ADO Recordset 对象的朋友可以到这里查看更多内容。

如果单单是读取,不涉及更新操作,那就用1,1

如果涉及读取及更新操作,可以用1,3 或3,2

Recordset对象的Open方法原型:

Open([Source],[ActiveConnection],[CursorType],[LockType],[Options])

CursorType游标类型:

Const adOpenForwardOnly = 0

前向游标,为缺省游标,提供最快的运行性能。用它打开recordset,从对至尾顺序取得所有结果。它不支持向后滚动,只允许在结果间单向移动。

Const adOpenKeyset = 1

静态游标,反映第一次打开游标时表中数据的状态,游标无法查明底层表中的数据行是否更新过、删除过或添加了新的数据。不过与只能前移的洲标不同,静态游标可以在结果间前后滚动。

Const adOpenDynamic = 2

键盘驱动的游标,可以查询表中底层数据行的某些变化,但不是全部。它特别是可以准确反映数据是否更新过。但它不能查明其它用户是否曾删除过数据行(删除掉的数据行在recordset中会留下空洞)。键盘驱动的游标支持在结果间前后滚动。

Const adOpenStatic = 3

动态游标,是最丰富的游标类型。游标打开时可以查询其他用户对表的任何改动,而且支持滚动。

LockType加锁类型:

Const adLockReadOnly = 1

缺省的上锁类型,只读方式上锁允许多个用户同时读取同样的数据,但不能改变数据。

Const adLockPessimistic = 2

以悲观上锁方式打开数据对象。该方式假定在你编辑记录时会有其它用户访问数据。此时一旦你开始编辑记录,其它用户就不能访问该数据。

Const adLockOptimistic = 3

以乐观上锁方式打开数据对象。该方式假定在你编辑记录时不会有其它用户访问数据。在完成改变之前,其它用户不能访问该记录。

Const adLockBatchOptimistic = 4

执行多行批处理更新时使用这种类型

Options参数:

Options参数标明用来打开记录集的命令字符串的类型。告诉ADO被执行的字符串内容的有关信息有助于高效地执行该命令字符串。

adCMDTable。被执行的字符串包含一个表的名字。

adCMDText。被执行的字符串包含一个命令文本。

adCMDStoredProc。被执行的字符串包含一个存储过程名。

adCMDUnknown。不指定字符串的内容。(这是缺省值。)

简单点就是:

RS.OPEN SQL,CONN,A,B

A: ADOPENFORWARDONLY(=0) 只读,且当前数据记录只能向下移动

ADOPENSTATIC(=3) 只读,当前数据记录可自由移动

ADOPENKEYSET(=1) 可读写,当前数据记录可自由移动

ADOPENDYNAMIC(=2) 可读写,当前数据记录可自由移动,可看到新增记录

B: ADLOCKREADONLY(=1) 默认值,用来打开只读记录

ADLOCKPESSIMISTIC(=2) 悲观锁定

ADLOCKOPTIMISTIC(=3) 乐观锁定

ADLOCKBATCHOPTIMISTIC(=4) 批次乐观锁定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值