Recordset记录集对象的属性和方式Word格式.docx
- 文档编号:4471606
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:24
- 大小:25.56KB
Recordset记录集对象的属性和方式Word格式.docx
《Recordset记录集对象的属性和方式Word格式.docx》由会员分享,可在线阅读,更多相关《Recordset记录集对象的属性和方式Word格式.docx(24页珍藏版)》请在冰点文库上搜索。
1
键盘指针,记录集中可以前后移动。
某一用户修改数据后,其他用户可以立即显示,但禁止查看其他用户添加和删除的记录
AdOpenDynamic
2
动态指针,记录集中可以前后移动。
所有修改会立即在其他客户端显示,功能强大,但所耗系统资源也多
AdOpenStatic
3
静态指针,记录集中可以前后移动。
所有修改不会在其他客户端显示
说明:
▲
关于指针(又称游标)。
所谓记录集,犹如一个电子表格,包括所获取的假设干记录,每条记录又包括假设干字段。
若是记录不为空,打开记录集后,指针指向第一条记录。
能够通过移动指针在记录集中漫游,指针所指向的记录为当前记录,当前记录只能有一条。
在默许情形下,当打开记录集,为向前指针,只能用MoveNext方式向前单向移动指针,其他操作不受支持。
若是需要编辑、添加和删除记录,想利用可前后移动的指针,而且需要看到其他用户的对数据库的修改,就需要利用其他类型的指针。
LockType参数值表6-18:
表6-18LockType参数值
AdLockReadOnly
只读,默认值,适用于仅浏览数据
AdLockPessimistic
只能同时被一个用户所修改,修改时锁定,完毕解锁
AdLockOptimistic
可以同时被多个用户所修改,直到用update方法更新记录才锁定
4
数据可以被修改,且不
AdLockBatchOptimistic
锁定其他用户,指定数据成批更新
锁定目的是确保数据的完整性,以避免更改被覆盖。
当不需要修改记录,应该利用默许的只读记录集,如此执行速度快,消耗系统资源少;
若是是需要修改记录,一样情形下,选择取值2,记录只锁定一下,即可爱惜更改操作,也不消耗过量的系统资源。
Options参数值表6-19:
表6-19Options参数值
AdCmdUnkown
-1
表示CommandText参数类型无法确定,默认值
AdCmdText
表示CommandText参数是命令类型
AdCmdTable
表示CommandText参数是表名称
AdCmdStoreProc
表示CommandText参数是存储过程名称
范例6-24:
成立记录集对象
ADODB.Recordset"
Select*fromarticle"
"
dsn=zbsdbbszb"
'
在Open方式中给出数据源
非显式创建连接对象和命令对象。
▲Select*fromarticle
那个查询字符串概念后,记录集对象会自动把它转换到一个命令对象上。
▲dsn=zbsdbbszb
这是创建连接对象的连接字符串。
二、Recordset记录集对象的属性
Recordset记录集对象经常使用属性见表6-20。
表6-20Recordset记录集对象常用属性见表
属性
指示记录集对象中数据的来源(命令对象名或SQL语句或表名)
连接对象名或包含数据库的连接信息的字符串
记录集中的指针类型,可选,见表6-16
锁定类型,可选,见表6-17
MaxRecors
控制从服务器获取的记录集的最大记录数
CursorLocation
控制数据处理是在客户端还是在服务器端
Filter
控制要显示的内容
Bof
记录集的开头
Eof
记录集的结尾
RecordCount
记录集总数
PageSize
分页显示时每一页的记录数
PageCount
分页显示时数据页的总页数
AbsolutePage
当前指针所在的数据页
AbsolutePosition
当前指针所在的记录行
Recordset记录集对象经常使用属性具体说明如下。
1.Source
用于设置数据库的查询信息,查询信息能够是命令对象名或SQL语句或表名,语法如下:
=查询信息
2.ActiveConnection
用于设置数据库的连接信息,连接信息能够是连接对象名或包括数据库的连接信息的字符串,语法如下:
=连接信息
3.CursorType
用于设置记录集指针类型,取值参见表6-17,语法如下:
=值
默以为0,即指针只能前移。
若是要让指针自由移动,一样设为键盘指针1。
4.
用于设置记录集的锁定类型。
取值参见表6-18,语法如下:
默以为1,只读属性。
若是要利用记录集对象进行添加、删除、更新等操作,只能由一个用户修改,一样需要设置其属性为2。
5.MaxRecors
用于设定从效劳器上取得的最大记录数,语法如下:
=最大记录数
通常这种方式不经常使用,而是利用SQL语句来指定所取得的最大记录数,”SelectTop
整数…”。
6.CursorLocation
用于设置数据处置是在客户端仍是在效劳器端。
取值参见表6-21,语法如下:
=值
表6-21CursorLocation参数值
AdUseClient
客户端处理
AdUseServer
服务器端处理
AdUseClientBatch
动态处理,在客户端处理,处理时连接切断,处理完毕重新连接
有的时候,为了减轻效劳器的工作负担,能够依照情形的需要,设置在客户端处置。
7.Filter
用于设置要显示的内容。
取值参见表6-22,语法如下:
表6-22Filter参数值
AdFilterNone
显示所有数据
AdFilterpendRecords
只显示没有修改过的数据
AdFilterAffectedRecords
只显示最近修改过的数据
AdFilterFetchedRecords
只显示暂存于客户端缓存中的数据
8.BOF
用于判定当前记录指针是不是在记录集的开头,如在开头,返回True,不然返回Falsh。
若是记录集为空,也返回True。
9.EOF
用于判定当前记录指针是不是在记录集的结尾,如在结尾,返回True,不然返回Flash。
记录集有两个特殊位置:
BOF和
EOF。
BOF表示记录集的开头,位于第一条记录之前;
EOF表示记录集结尾,位于最后一条记录以后。
BOF
为
True,当前指针指到
RecordSet
的第一条记录;
EOF
True,当前指标指到
的最后一条记录。
若是记录集不为空,指针能够在BOF、所有记录和EOF移动。
若是记录集为空,现在指针同时指向BOF和
EOF,它们的值均为True。
具体判定如下:
假设当前记录的位置是在一个
Recordset
对象第一行记录之前时,
属性返回
True,反之那么返回
False。
;
对象最后一行记录以后时,EOF
False;
与
都为
False,表示指标位于
的当中;
True,在RecordSet
里没有任何记录。
从以上可知,通过查验
属性,能够得知当前指针所指向的
的位置,利用
与EOF
属性,能够得知一个
对象是不是包括有记录或得知移动记录行是不是已经超出该
Recordset对象的范围。
判定记集录是不是为空的代码如下:
%
ifnotandthen'
若是不是开头,也不是结尾,那么执行
…
Endif
循环输出记录集记录的代码如下:
Dowhilenot'
若是没有抵达记录集未尾,那么循环输出下面的记录
Loop
10.RecordCount
用于返回记录集中的记录总数。
咱们经常使用
RecordCount
属性来找出一个
对象包括多少条记录。
例如:
%%>
要注意的是,利用RecordCount必需设置指针类型为键盘指针1或是静态指针3。
11.PageCount
用于设置分页显示时数据页的总数。
利用PageCount
属性,决定
对象包括多少“页”的数据。
那个地址的“页”是指数据记录的集合,大小等于
PageSize
属性的设定,即便最后一页的记录数比
的值少,最后一页也算是
PageCount
的一页。
12.
属性
用于设置分页时每一页所显示的记录数。
属性是决定
ADO
存取数据库时如何分页显示的关键,利用它就能够够决定多少记录组成一个逻辑上的“1页”。
第10、11、12条属性一般是用于分页显示,具体运用见下面的范例。
13.AbsolutePage
用于设置当前指针位于哪一页。
语法如下:
=整数值
14.AbsolutePosition
用于设置当前指针所在的记录行。
后面的这些属性利历时,一样需要设置指针类型为键盘指针1。
三、
Recordset记录集对象的方式
Recordset记录集对象的经常使用方式见表6-23。
表6-23Recordset记录集对象的方法
方法
Open
打开记录集
Close
关闭记录集
Requery
重新打开记录集
Move
指针移至指定记录
MoveFirst
指针移至第一条记录
MoveLast
指针移至最后一条记录
MovePrevious
指针移至上一条记录
MoveNext
指针移至下一条记录
AddNew
添加记录
Delete
删除记录
Update
更新记录
CancelUpdate
取消更新
GetRows
从记录集得到多行记录
Resync
与数据库服务器同步更新
具体说明如下。
1.
用于打开记录集,语法如下:
2.
用于关闭记录集,语法如下:
利用Close方式关闭记录集对象,Close方式并非会将记录集对象从内存中清除,若是的确再也不需要那个对象,能够用以下语句清除那个对象,以完全释放所占用的系统资源。
Setrs=nothing
3.
用于从头打开记录集,语法如下:
4.Move
用于将指针移动到指定记录,语法如下:
NumRecords,Start
NumRecords是一个正负数运算式,用于设定当前记录位置的前后移动数量,若是为正值表示向前移动(即记录集的未尾方向)多少条记录,若是为负值表示向后移动(即记录集的开始方向)多少条记录;
Start是一个可选的项目,用来指定记录起始的位置,默以为当前指针位置。
5.MoveFirst
用于将指针移动到第一条记录,语法如下:
6.MoveLast
用于将指针移动到最后一条记录,语法如下:
7.MovePrevious
用于将指针移动到上一条记录,语法如下:
8.MoveNext
用于将指针移动到下一条记录,语法如下:
Move
和MoveFirst
、MoveLast、MoveNext、MovePrevious方式用于指针的移动。
MoveNext是最经常使用的方式,执行速度快。
若是利用其他方式,一样要设置指针类型为键盘指针。
在利用这几个有关指针移动的方式之前,最好用Bof和Eof进行判定是不是已达记录集的边界,不然超越边界,就会犯错。
9.AddNew
用于向数据库添加记录,语法如下:
添加记录的信息
10.Delete
用于向数据库删除当前记录,语法如下:
指针当前指向哪条记录,确实是当前记录。
11.Update
用于向数据库更新记录。
它有两种情形。
第一种,执行完AddNew
或Delete后,执行Update更新,语法如下:
第二种,直接用Update方式更新,语法如下:
更新记录的信息
例如,以下是采纳第一种方式更新数据
若是采纳第二种方式,能够直接写成:
12.CancelUpdate
用于取消更新记录的操作,语法如下:
13.GetRows
用于从记录集中的当前记录开始返回多行记录,它将返回一个二维数组,语法如下:
(number)
参数用于设置要返回多少条记录,默以为-1,也确实是全数记录。
在返回的二维数组中,第一维表示列,第二维表示行。
14.Resync
用于将客户端记录集与效劳器同步更新。
当多人同时打开数据库进行更新操作,采纳那个方式能够实时查看其他用户的更新数据,语法如下:
参数取值见表6-24。
表6-24Resync参数值
AdAffectCurrent
只同步更新当前指针所在的记录行
AdAffectGroup
同步更新所有匹配Filter属性的记录行
AdAffectAll
同步更新记录集中的所有数据
范例6-25:
显示记录的操作
"
'
Sql="
Select*Fromarticle"
Sql,db
查询记录
DoWhileNot
rs("
name"
)&
br>
循环输出姓名
Loop
采纳rs(“字段名”)能够很容易患到当前记录的字段值,然后直接输出显示或是给予一个变量。
范例6-26:
添加记录的操作
Select*Fromarticle"
Sql,db,0,2'
锁定类型为能够修改
rs("
)="
李四"
范例6-27:
更新记录的操作
Select*Fromarticlewherename='
李四'
查询名为李四的记录
张三"
将名字”李四”更新为”张三”
范例:
删除记录的操作
张三'
范例6-28:
记录集对象的综合运用。
第一通过列表显示数据库article表中所有记录的文章题目字段值,再传递记录id号至显示一条记录的所有字段值,然后对其进行修改操作。
的代码。
setdb=("
)
若是系统中有较多程序文件要对数据库进行操作,为了代码的简练,能够把连接代码单独写在一个文件里,然后在其他的文件代码的开头写上<
!
--#includefile="
-->
以引用那个文件。
#include语法用于在一个文件中插入另一个文件。
html>
head>
/head>
body>
sql="
select*fromarticleorderbysubmit_datedesc"
按提交时刻降序查询显示
setrs=("
sql,db
Dowhilenot
ahref="
?
id=<
%=rs("
ID"
)%>
>
title"
/a>
/body>
/html>
正确书写代码,专门注意空格。
比如<
与<
title"
是不一样的。
自己手工编写的程序发生错误,往往是表此刻写法的错误,比如显现不该有的空格、利用了中文标点符号、英文单词的拼写错误等等。
因此大伙儿在编写ASP程序时必然要细心。
▲<
给页面显示的题目字段加上链接,以传递ID号到页面。
利用Do...Loop循环将表中所有记录的文章题目字段值读取显示。
成效图略。
title>
更新记录范例<
/title>
%
依照传入的id将本条记录显示在表单内
id=("
id"
创建Recordset对象
Sql="
select*fromarticlewhereid="
&
id'
id由前面的页面传过来
setrs=(Sql)
center>
tableborder="
1"
width="
400"
style="
border-collapse:
collapse"
bordercolor="
#111111"
cellpadding="
4"
cellspacing="
0"
formaction="
method="
post"
name="
form1"
tr>
td>
作者<
/td>
inputtype="
text"
size=20value="
/tr>
题目<
size=40value="
内容<
textareaname="
articlebody"
rows="
6"
cols="
40"
wrap="
soft"
<
/textarea>
submit"
value="
确信"
/form>
/table>
/center>
先查验表单输入内容不能为空
IfRequest("
)<
ANDRequest("
Then
以下修改记录
name=Request("
title=Request("
articlebody=Request("
updatearticlesetname='
name&
title='
title&
articlebody='
articlebody&
whereid="
id
(Sql)'
那个地址利用Execute方式,修改记录
修改完毕,重定向至
Else
所有项目都要填写"
EndIf
本范例是从论坛中查找并打开一条记录,然后对其进行修改操作。
依照从其他页面传递过来的文章ID号,从数据库中查询并显示符合条件的记录,然后通过表单向数据库里提交修改信息,用update进行记录的更新操作。
注意观看图阅读器地址栏中显示ID号的传递情形。
下面介绍一种很有效的记录集对象的实际应用—分页显示技术。
咱们注意观看网上的BBS论坛,为了提高页面的读取速度,可不能将所有的帖子全数在一页中罗列出来,那样页面空间也是有限,一般是将贴子分成多页显示,每页显示必然数量的帖子数,比如6条。
这确实是利用了ADO
存取数据库时的分页显示技术。
对象提供了几个专门进行分页处置的属性:
PageSize(
页大小
)、
PageCount(
页数量
和AbsolutePage(
绝对页
)等。
范例6-29:
分页显示记录
成立Connect
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Recordset 记录 对象 属性 方式