黄镇廷反手基本功视频:ASP中RS的属性

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/10 15:23:55
在ASP 中,如果 这样写
set rs=server.createobject("adodb.recordset")
conn="DBQ="+server.mappath("data.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
sql="select * from user"
rs.open sql,conn,1,3
那么,RS有什么方法(属性)如:RS.MOVE ,它有什么作用呢?能否举个例子?
还有RS.OPEN SQL,CONN,1,3 ,后面的1,3是什么意思,还有别的吗?它有什么作用?

这段代码是这样的意思:
定义RS为连接记录集,
记录集有很多的属性,如RS.OPEN是指记录集打开某个联接,rs.recordcount是指记录集的记录等,这些都有专门的网站介绍!
后面的13是指定义记录的类型等,是游标
这两个是游标,具体的作用是:

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方法后才锁定记录。

当不需要改动任何记录时,应该使用只读的记录集,这样提供者不用做任何检测。
对于一般的使用,乐观的锁定可能是最好的选择,因为记录只被锁定一小段时间,
数据在这段时间被更新。这减少了资源的使用。

总结一下:

rs.open sql,conn,1,1 代表不允许更新,一般用于查询操作。

rs.open sql,conn,1,3 代表允许更新,一般用于插入,更新和删除操作。

RS就是记录集啦,记录集有的属性,它基本都有

RS.MOVE 就是移动记录指针
如:rs.move 1 //向下移一条

RS.OPEN SQL,CONN,1,3
着是打开数据库,1,3代表打开的权限

rsNames.MoveFirst ' 移动到记录集的开始位置。
Connection 对象代表了打开的、与数据源的连接。

可使用 Recordset 对象操作来自提供者的数据。使用 ADO 时,通过 Recordset 对象可对几乎所有数据进行操作。所有 Recordset 对象均使用记录(行)和字段(列)进行构造。由于提供者所支持的功能不同,某些 Recordset 方法或属性有可能无效。

ADOR.Recordset 和 ADODB.Recordset 是用来创建 Recordset 对象的 ProgID。由此产生的 Recordset 对象行为相同,与 ProgID 无关。ADOR.Recordset 随 Microsoft® Internet Explorer 安装,而 ADODB.Recordset 则随 ADO 安装。Recordset 对象的行为受环境(即客户端、服务器、Internet Explorer 等)的影响。这些差异将在属性、方法和事件的“帮助”主题中加以说明。

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

动态游标 — 用于查看其他用户所作的添加、更改和删除,并用于不依赖书签的 Recordset 中各种类型的移动。如果提供者支持,可使用书签。

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

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

仅向前游标 — 除仅允许在记录中向前滚动之外,其行为类似动态游标。这样,当需要在 Recordset 中单程移动时就可提高性能。
在打开 Recordset 之前设置 CursorType 属性来选择游标类型,或使用 Open 方法传递 CursorType 参数。部分提供者不支持所有游标类型。请检查提供者的文档。如果没有指定游标类型,ADO 将默认打开仅向前游标。

对部分提供者(例如 Microsoft ODBC Provider for OLE DB 连同 Microsoft SQL Server),可以通过使用 Open 方法传递连接字符串,根据以前定义的 Connection 对象独立地创建 Recordset 对象。ADO 仍然创建 Connection 对象,但它不将该对象赋给对象变量。不过,如果正在相同的连接上打开多个 Recordset 对象,就应该显式创建和打开 Connection 对象,由此将 Connection 对象赋给对象变量。如果在打开 Recordset 对象时没有使用该对象变量,即使在传递相同连接字符串的情况下,ADO 也将为每个新的 Recordset 创建新的 Connection 对象。

可以创建所需数量的 Recordset 对象。

打开 Recordset 时,当前记录位于第一个记录(如果有),并且 BOF 和 EOF 属性被设置为 False。如果没有记录,BOF 和 EOF 属性设置是 True。

假设提供者支持相关的功能,可以使用 MoveFirst、MoveLast、MoveNext 和 MovePrevious 方法以及 Move 方法,和 AbsolutePosition、AbsolutePage 和 Filter 属性来重新确定当前记录的位置。仅向前 Recordset 对象只支持 MoveNext 方法。当使用 Move 方法访问每个记录(或枚举 Recordset)时,可使用 BOF 和 EOF 属性查看是否移动已经超过了 Recordset 的开始或结尾。

Recordset 对象可支持两类更新:立即更新和批更新。使用立即更新,一旦调用 Update 方法,对数据的所有更改将被立即写入现行数据源。也可以将值的数组作为参数传递来使用 AddNew 和 Update 方法,同时更新记录的若干字段。

如果提供者支持批更新,可以使提供者将多个记录的更改存入缓存,然后使用 UpdateBatch 方法在单个调用中将它们传送给数据库。这种情况应用于使用 AddNew、Update 和 Delete 方法所做的更改。调用 UpdateBatch 方法后,可以使用 Status 属性检查任何数据冲突并加以解决。

注意 要执行不使用 Command 对象的查询,应将查询字符串传递给 Recordset 对象的 Open 方法。但是,在想要保持命令文本并重复执行或使用查询参数时,仍然需要 Command 对象。

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

参数

Source 可选,变体型,计算 Command 对象的变量名、SQL 语句、表名、存储过程调用或持久 Recordset 文件名。

ActiveConnection 可选。变体型,计算有效 Connection 对象变量名;或字符串,包含 ConnectionString 参数。

CursorType 可选,CursorTypeEnum 值,确定提供者打开 Recordset 时应该使用的游标类型。可为下列常量之一(参阅 CursorType 属性可获得这些设置的定义)。

常量 说明
adOpenForwardOnly (默认值)打开仅向前类型游标。
adOpenKeyset 打开键集类型游标。
adOpenDynamic 打开动态类型游标。
adOpenStatic 打开静态类型游标。

LockType 可选。确定提供者打开 Recordset 时应该使用的锁定(并发)类型的 LockTypeEnum 值,可为下列常量之一(参见 LockType 属性可获得详细信息)。

常量 说明
adLockReadOnly (默认值)只读 — 不能改变数据。
adLockPessimistic 保守式锁定(逐个) — 提供者完成确保成功编辑记录所需的工作,通常通过在编辑时立即锁定数据源的记录来完成。
adLockOptimistic 开放式锁定(逐个) — 提供者使用开放式锁定,只在调用 Update 方法时才锁定记录。
adLockBatchOptimistic 开放式批更新 — 用于批更新模式(与立即更新模式相对)。

Options 可选,长整型值,用于指示提供者如何计算 Source 参数(如果它代表的不是 Command 对象),或从以前保存 Recordset 的文件中恢复 Recordset。可为下列常量之一(参见 CommandType 属性可获得该列表中前五个常量的详细说明)。

常量 说明
adCmdText 指示提供者应该将 Source 作为命令的文本定义来计算。
adCmdTable 指示 ADO 生成 SQL 查询以便从 Source 命名的表返回所有行。
adCmdTableDirect 指示提供者更改从 Source 命名的表返回的所有行。
adCmdStoredProc 指示提供者应该将 Source 视为存储的过程。
adCmdUnknown 指示 Source 参数中的命令类型为未知。
adCommandFile 指示应从 Source 命名的文件中恢复持久(保存的)Recordset。
adExecuteAsync 指示应异步执行 Source。
adFetchAsync 指示在提取 CacheSize 属性中指定的初始数量后,应该异步提取所有剩余的行。

说明

使用 Recordset 对象的 Open 方法可打开代表基本表、查询结果或者以前保存的 Recordset 中记录的游标。

使用可选的 Source 参数指定使用下列内容之一的数据源:Command 对象变量、SQL 语句、存储过程、表名或完整的文件路径名。

ActiveConnection 参数对应于 ActiveConnection 属性并且指定在其中打开 Recordset 对象的连接。如果传送该参数的连接定义,则 ADO 使用指定的参数打开新连接。可以在打开 Recordset 之后更改该属性的值以便将更新发送到其他提供者。或者可以将该属性设置为 Nothing(在 Microsoft Visual Basic 中)以便将 Recordset 与所有提供者断开。

对于直接对应于 Recordset 对象属性的参数(Source、CursorType 和 LockType),参数和属性的关系如下:

在 Recordset 对象打开之前属性是读/写。

除非在执行 Open 方法时传送相应的参数,否则将使用属性设置。如果传送参数,则它将覆盖相应的属性设置,并且用参数值更新属性设置。

在打开 Recordset 对象后,这些属性将变为只读。
注意 对于其 Source 属性设置为有效 Command 对象的 Recordset,即使 Recordset 对象没有打开,ActiveConnection 属性也是只读的。

如果在 Source 参数中传送 Command 对象并且同时传递 ActiveConnection 参数,那么将产生错误。Command 对象的 ActiveConnection 属性必须已设置为有效的 Connection 对象或者连接字符串。

如果在 Source 参数中传送的不是 Command 对象,那么可以使用 Options 参数优化 Source 参数的计算。如果没有定义 Options 则性能将会降低,原因是 ADO 必须调用提供者以确定参数为 SQL 语句、存储过程还是表名。如果确知所用的 Source 类型,则可以设置 Options 参数以指示 ADO 直接跳转到相关的代码。如果 Options 参数与 Source 类型不匹配,将产生错误。

如果不存在与记录集关联的连接,Options 参数的默认值将为 adCommandFile。这是持久 Recordset 对象的典型情况。

如果数据源没有返回记录,那么提供者将 BOF 和 EOF 属性同时设置为 True,并且不定义当前记录位置。但如果游标类型允许,仍然可以将新数据添加到该空 Recordset 对象。

在结束对打开的 Recordset 对象的操作后,可使用 Close 方法释放所有关联的系统资源。关闭对象并非将它从内存中删除,可以更改它的属性设置并在以后使用 Open 方法再次将其打开。要将对象从内存中完全删除,可将对象变量设置为 Nothing。

在设置 ActiveConnection 属性之前调用不带操作数的 Open,可通过将字段追加到 Recordset Fields 集合创建 Recordset 的实例。