关于记录集对象类型的问题

tommyxdf 2009-12-06 01:47:59
原本我这里有个程序是建立一个DataBase对象,
Dim CustPicts As DataBase
Dim Pictures As Recordset,
然后打开Recordset时:
Set Pictures = CustPicts.OpenRecordset("Pictures", dbOpenDynaset)
我想问一下这里面dbOpenDynaset类型有什么作用?

现在我想建立connection对象打开记录集,
Dim CustPicts As ADODB.Connection Dim Pictures As ADODB.Recordset,
打开时:Set Pictures = New ADODB.Recordset Pictures.Open "Pictures", CustPicts, adOpenKeyset, adLockOptimistic
但是我想设置Pictures的dbOpenDynaset类型,不知道怎么操作?
谢谢!
...全文
166 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
slowgrace 2009-12-07
  • 打赏
  • 举报
回复


——来自ACCESS附带的DAO帮助
slowgrace 2009-12-07
  • 打赏
  • 举报
回复
这问题好,又查了下。

dbOpenDynaset是DAO的枚举常数,adOpenDynamic是ADO的枚举常数。

dbOpenDynaset:Opens a dynaset-type Recordset object, which is similar to an ODBC keyset cursor.

所以我5楼的回复也许错了,也许你0楼的代码本来就是对的。


也就是说,DAO里的dbOpenDynaset应该是相当于ADO里的adOpenKeyset
也就是说,你0楼的代码应该已经做到了你想要的效果了
tommyxdf 2009-12-07
  • 打赏
  • 举报
回复
问一下,dbOpenDynaset 和 adOpenDynamic是一样的吗?
slowgrace 2009-12-07
  • 打赏
  • 举报
回复
所以,你的语句这样写应该就行了:

Pictures.Open "Pictures", CustPicts, adOpenDynamic, adLockOptimistic
slowgrace 2009-12-07
  • 打赏
  • 举报
回复
打开 Recordset 之前请先设置 CursorType 属性以选择游标类型,或者用 Open 方法传递 CursorType 参数。某些提供者并不支持所有类型的游标。请检查提供者的文档。如果未指定游标类型,ADO 将默认打开仅向前游标。

Open 方法 (ADO Recordset)

语法
recordset.Open Source, ActiveConnection, CursorType, LockType, Options

参数
Source
可选。Variant,计算有效的 Command 对象、SQL 语句、表名、存储过程调用、URL 或包含持久存储 Recordset 的文件名或 Stream 对象。
ActiveConnection
可选。Variant,计算有效的 Connection 对象变量名,或包含 ConnectionString 参数的 String。
CursorType
可选。CursorTypeEnum 值,确定在打开 Recordset 时提供者应使用的游标类型。默认值为 adOpenForwardOnly。
LockType
可选。LockTypeEnum 值,确定在打开 Recordset 时提供者应使用的锁定(并发)类型。默认值为 adLockReadOnly。
Options
可选。Long 值,指示提供者计算 Source 参数的方式(如果该参数表示除 Command 对象之外的某些内容),或者指示 Recordset 应该从以前保存过的文件中恢复。可以是一个或多个 CommandTypeEnum 或 ExecuteOptionEnum 值,这些值可以用位 AND 操作符组合。


CursorTypeEnum 如下:

slowgrace 2009-12-07
  • 打赏
  • 举报
回复
dbOpenDynaset是一种游标类型,指定你打开的记录集在同步、更新等方面的数据操作特性。具体参考下面(来自ADO参考手册):

ADO 中定义了四种不同的游标类型:

动态游标 — 用于查看其他用户所做的添加、更改和删除;用于 Recordset(不依赖于书签)中的所有移动类型;如果提供者支持,还可用于书签。

键集游标 — 其行为类似动态游标,不同的只是它禁止查看其他用户添加的记录,并且禁止访问其他用户删除的记录。其他用户所做的数据更改依然可见。它始终支持书签,因此允许 Recordset 中的所有移动类型。

静态游标 — 提供记录集的静态副本,可用来查找数据或生成报告;它始终支持书签,因此允许 Recordset 中的所有移动类型。其他用户所做的添加、更改或删除将不可见。当打开客户端 Recordset 对象时,这是唯一允许的游标类型。

仅向前游标 — 只允许在 Recordset 中向前滚动。其他用户所做的添加、更改或删除将不可见。当只需要对 Recordset 进行一次传递时,可以提高性能。
tommyxdf 2009-12-07
  • 打赏
  • 举报
回复
谁能跟我讲下dbOpenDynaset的用法,我用connection对象打开记录集对象后,如何再修改成dbOpenDynaset?还是在打开的时候就要修改,具体语句应该是怎样的?我之前连的是Access数据库,现在改成了SQL SERVER数据库,这里面的操作有什么不同吗?
三断笛 2009-12-06
  • 打赏
  • 举报
回复
重新打开呗./

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧