14.Resync
用于将客户端记录集与服务器同步更新。当多人同时打开数据库进行更新操作,采用这个方法可以实时查看其他用户的更新数据,语法如下:
rs.Resync 参数
参数取值见表6-24。

表6-24 Resync参数值
参数
说明
AdAffectCurrent 1 只同步更新当前指针所在的记录行
AdAffectGroup 2 同步更新所有匹配Filter属性的记录行
AdAffectAll 3 同步更新记录集中的所有数据

范例6-25:显示记录的操作
<%
Set db=Server.CreateObject("ADODB.Connection")
db.Open "zbsdbbszb"
' 建立Recordset对象
Set rs=Server.CreateObject("ADODB.Recordset")
Sql ="Select * From article "
rs.Open Sql,db
' 查询记录
Do While Not rs.Eof
Response.Write rs("name") & "<br>" ' 循环输出姓名
rs.Movenext
Loop
%>
说明:
采用rs(“字段名”)可以很容易得到当前记录的字段值,然后直接输出显示或是赋予一个变量。
范例6-26:添加记录的操作
<%
Set db=Server.CreateObject("ADODB.Connection")
db.Open "zbsdbbszb"
Set rs=Server.CreateObject("ADODB.Recordset")
Sql ="Select * From article"
rs.Open Sql,db,0,2 ' 锁定类型为可以修改
' 添加记录
rs.AddNew
rs("name")="李四"
rs.Update
%>
范例6-27:更新记录的操作
<%
Set db=Server.CreateObject("ADODB.Connection")
db.Open "zbsdbbszb"
Set rs=Server.CreateObject("ADODB.Recordset")
Sql ="Select * From article where name='李四'" ' 查询名为李四的记录
rs.Open Sql,db,0,2 ' 锁定类型为可以修改
' 更新记录
rs("name")="张三" ' 将名字”李四”更新为”张三”
rs.Update
%>
范例6.29:删除记录的操作
<%
Set db=Server.CreateObject("ADODB.Connection")
db.Open "zbsdbbszb"
Set rs=Server.CreateObject("ADODB.Recordset")
Sql ="Select * From article where name='张三'"
rs.Open Sql,db,0,2 ' 锁定类型为可以修改
' 删除记录
rs.delete
%>
范例6-28:记录集对象的综合运用。首先通过articlelist.asp列表显示数据库article表中所有记录的文章标题字段值,再传递记录id号至articleupdate.asp显示一条记录的所有字段值,然后对其进行修改操作。
conn_db.asp的代码。
<%
set db=Server.Createobject("ADODB.Connection")
db.Open "zbsdbbszb"
%>
说明:
如果系统中有较多程序文件要对数据库进行操作,为了代码的简洁,可以把连接代码单独写在一个文件里,然后在其他的文件代码的开头写上<!--#include file="conn_db.asp"-->以引用这个文件。#include语法用于在一个文件中插入另一个文件。
articlelist.asp的代码。
<!--#include file="conn_db.asp"-->
<html><head></head><body>
<%
sql="select * from article order by submit_date desc" ' 按提交时间降序查询显示
set rs=Server.CreateObject("ADODB.Recordset")
rs.Open sql,db
Do while not rs.eof
%>
<a href="samlpe6-10.asp?id=<%=rs("ID")%>"><%=rs("title")%></a><br>
<%
Rs.MoveNext
Loop
%>
</body></html>
注意:
▲ 正确书写代码,特别注意空格。比如<%=rs("title")%>与<%=rs("title ")%>是不一样的。自己手工编写的程序发生错误,往往是表现在写法的错误,比如出现不应有的空格、使用了中文标点符号、英文单词的拼写错误等等。所以大家在编写ASP程序时一定要细心。
▲ <a href="articleupdate.asp?id=<%=rs("ID")%>"><%=rs("title")%></a>
给页面显示的标题字段加上链接,以传递ID号到articleupdate.asp页面。
▲ 使用Do ... Loop循环将表中所有记录的文章标题字段值读取显示。
效果图略。
articleupdate.asp
<!--#include file="conn_db.asp"-->
<html><head>
<title>更新记录范例</title>
</head><body>
<%
' 根据传入的id将本条记录显示在表单内
id=Request.QueryString("id")
' 创建Recordset对象
Sql="select * from article where id=" & id ' id由前面的页面传过来
set rs=db.Execute(Sql)
%>
<center>
<table border="1" width="400" style="border-collapse: collapse" bordercolor="#111111" cellpadding="4" cellspacing="0">
<form action="" method="post" name="form1">
<tr>
<td>作者</td><td><input type="text" name="name" size=20 value="<%=rs("name")%>"></td>
</tr><tr>
<td>标题</td><td>
<input type="text" name="title" size=40 value="<%=rs("title")%>"></td>
</tr><tr>
<td>内容</td><td>
<textarea name="articlebody" rows="6" cols="40" wrap="soft"> <%=rs("articlebody")%></textarea></td>
</tr>
<tr>
<td><input type="submit" value="确定">
</td>
</tr>
</form>
</table>
</center>
<%
' 先检验表单输入内容不能为空
If Request("name")<>"" AND Request("title")<>"" AND Request("articlebody")<>"" Then
' 以下修改记录
name=Request("name")
title=Request("title")
articlebody=Request("articlebody")
Sql="update article set name='" & name & "',title='" & title & "',articlebody='" & articlebody & "' where id=" & id
db.Execute(Sql) ' 这里利用Execute方法,修改记录
Response.Redirect "articlelist.asp" ' 修改完毕,重定向至articlelist.asp
Else
%>
<center>
<%
Response.Write "所有项目都要填写"
End If
%>
</center>
</body></html>
说明:
▲ 本范例是从论坛中查找并打开一条记录,然后对其进行修改操作。根据从其他页面传递过来的文章ID号,从数据库中查询并显示符合条件的记录,然后通过表单向数据库里提交修改信息,用update进行记录的更新操作。
▲ 注意观察图6.11浏览器地址栏中显示ID号的传递情况。
下面介绍一种很有用的记录集对象的实际应用—分页显示技术。我们注意观察网上的BBS论坛,为了提高页面的读取速度,不会将所有的帖子全部在一页中罗列出来,那样页面空间也是有限,通常是将贴子分成多页显示,每页显示一定数目的帖子数,比如6条。这就是使用了ADO 存取数据库时的分页显示技术。
Recordset 对象提供了几个专门进行分页处理的属性:PageSize( 页大小 )、 PageCount( 页数目 ) 以及 AbsolutePage( 绝对页 )等。
范例6-29:分页显示记录
<%
' 建立Connection对象
Set db=Server.CreateObject("ADODB.Connection")
db.Open "zbsdbbszb"
Set rs=Server.CreateObject("ADODB.Recordset") ' 建立Recordset对象
Sql ="Select * From article"
rs.Open Sql,db,1
' 查询记录
If Not rs.Bof And Not rs.Eof Then ' 首先判断记录集记录非空
dim page_size ' 设置每页多少条记录量
dim page_no ' 设置当前是第几页
dim page_total ' 设置总页数
page_size=6 ' 每页显示6条记录
' 如果第一次打开,则page_no为1,否则由传回的参数决定
if Request.QueryString("page_no")="" then
page_no=1
else
page_no=Cint(Request.QueryString ("page_no")) ' 用Cint将字符串变为整数
end if
rs.PageSize=page_size ' 设置每页多少条记录
page_total=rs.PageCount ' 返回总页数
rs.AbsolutePage=page_no ' 设置当前显示第几页
' 下面一段显示当前页的所有记录
Dim I
I=page_size ' 该变量用来控制显示当前页记录
Do While Not rs.Eof And I>0 ' 循环直到当前页结束或文件结尾
I=I-1
Response.Write rs("title") & "<br>" ' 输出文章标题字段值
rs.MoveNext
Loop
Response.Write "请选择页: "
' 输出有关页数信息,从1到总页数循环,如果不是当前页,就加上超链接
For I=1 To page_total
If I=page_no Then
Response.Write I & "&nbsp"
Else
Response.Write "<a href='show-example.asp?page_no=" & I & "'>" & I & "</a>&nbsp"
End If
Next
End if
%>
说明:
▲ 以上进行分页显示设置,设置每页显示的记录数为6条。
▲ Response.Write "<a href='show-example.asp?page_no=" & I & "'>" & I & "</a>&nbsp"
依次显示页码信息,如果不是当前页,则加上超链接。show-example.asp为本页面文件名。
6.4.4 Fields列集合和Field列对象
记录集对象中包含由Field列对象组成的Fields列集合。每个Field列对象对应于记录集中的一列(字段)。Field列对象可以看成是记录集对象的子对象。
1.Fields列集合
Fields列集合的只有Count属性,用于返回记录集中字段(也就是Field列对象)的个数,语法如下:
rs.Fields.Conut
Field列集合的Item方法,用于建立一个Field列对象,语法如下:
Set Field对象=rs.Fields.Item(字段名或字段索引值)
字段索引值是根据记录集中字段的先后顺序来定,从0到Fields.Count-1。
Field列对象的属性见表6-25。

表6-25 Field列对象的属性
属性
说明
Name 字段名称
Value 字段值
Type 字段的数据类型
DefinedSize 字段长度
Precision 字段所存放数字的最大位数
NumericScale 字段存放数字的最大值
ActualSize 字段数据值长度
Attributes 字段数据值属性,见表6-26

使用Value属性可以获得当前记录的字段值。在Field对象的属性中,Value属性相对比较常用,语法如下:
Field对象.value

表6-26 Attributes属性值
参数
说明
AdFldMayDefer 2 允许不取回字段的所有数据
AdFldUpdatable 4 不允许改动字段
AdFldUnknownUpdatable 8 数据源不能确定是否可写
AdFldFixed 16 固定字段长度,多余部分删除
AdFldIsNullable 32 字段可以接受空值
AdFldMayBeNull 64 字段可以读取空值
AdFldLong 128 长二进制字段
AdFldRowID 256 字段可以包含行记录ID
AdFldRowVersion 512 字段包含可以跟踪时间与日期的标记

Field对象的AppendChunk方法用于在当前字段的数据未尾添加数据,语法如下:
Field对象. AppendChunk 数据
Fields集合和Field对象由于具体使用比较少,我们在此不作详细介绍了。下面给出一个实例来说明Field对象的常用属性。
实例6-29:Field对象的常用属性
<%
Set db=Server.CreateObject("ADODB.Connection")
db.Open "zbsdbbszb"
' 建立Recordset对象
Set rs=Server.CreateObject("ADODB.Recordset")
Sql ="Select * From article"
rs.Open Sql,db
' 创建当前字段的Field对象fld
' Item(1)用于指明显示记录集中哪个字段情况,1为字段索引值
Set fld=rs.Fields.Item(1)
Response.Write "字段名称:" & fld.Name & "<br>"
Response.Write "字段值:" & fld.Value & "<br>"
Response.Write "字段类型:" & fld.Type & "<br>"
Response.Write "字段大小:" & fld.Definedsize & "<br>"
Response.Write "字段最大位数:" & fld.Precision & "<br>"
%>
以上介绍了ADO的三个重要的基本的对象:连接对象、命令对象和记录集对象,还有其他的三个对象:错误对象、参数对象和列对象,还介绍了三个集合,即错误集合、参数集合和列集合。
ADO还有Properties属性集合和Property属性对象。Properties属性集合是所有Property属性对象的集合,用来保存与连接对象、命令对象、记录集对象和列对象有关的各个Property属性对象。Property属性对象用于记录连接对象、命令对象、记录集对象和列对象的每一项属性值。关于Properties属性集合和Property属性对象,这里不作过多叙述

Recordset对象属性(二)相关推荐

  1. 【MATLAB】基本绘图 ( 句柄值 | 对象句柄值获取 | 创建对象时获取句柄值 | 函数获取句柄值 | 获取 / 设置 对象属性 | 获取对象属性 )

    文章目录 一.对象句柄值获取 1.句柄值 2.创建对象时获取句柄值 3.函数获取句柄值 4.获取 / 设置 对象属性 二.获取对象属性 1.获取 线 对象属性 2.获取 坐标轴 对象属性 一.对象句柄 ...

  2. day04【JS高级】BOM对象、Window对象、二种定时器、 Location对象、DOM对象、DOM获取元素、DOM操作内容、DOM操作属性、DOM操作样式、DOM操作元素(标签)、 正则表达式

    回顾 1. js基础语法运算符:算数运算符可以与字符串进行数学运算,js底层进行隐式转换比较运算符:===(恒等) 特点,比较类型+内容流程控制语句if判断条件表达式:1)布尔2)数值:非0为真3)字 ...

  3. javascript小技巧 JavaScript[对象.属性]集锦 [zz]

    因为这两篇太安逸了,东西很多,很实用,所以转到我格子里! 总的来说,如果你要找js 的东西,而不看这两篇的话,肯定要多花好多时间!!哈哈!! 如果你找的javascript的东西的话,建议你 ctrl ...

  4. recordset(属性含义)

    http://blog.163.com/fk1007@126/blog/static/3003673920094795827814/ 第一部分:记录集 记录集是从数据库中按一定查询条件读入到内存中的一 ...

  5. java recordset 记录数_ADO Recordset 对象

    ADO Recordset 对象 实例 GetRows 本例演示如何使用 GetRows 方法. Recordset 对象 ADO Recordset 对象用于容纳一个来自数据库表的记录集.一个 Re ...

  6. Recordset对象

    Recordset 对象用来操作来自提供者的数据.使用 ADO 时,通过 Recordset 对象可对几乎所有数据进行操作.所有 Recordset 对象均使用记录(行)和字段(列)进行构造.由于提供 ...

  7. javascript小技巧amp;amp;JavaScript[对象.属性]集锦 [转载了多篇]

    因为这两篇太安逸了,东西很多,很实用,所以转到我格子里! 总的来说,如果你要找js 的东西,而不看这两篇的话,肯定要多花好多时间!!哈哈!! 如果你找的javascript的东西的话,建议你 ctrl ...

  8. javascript小技巧JavaScript[对象.属性]集锦 [转载了多篇]

    因为这两篇太安逸了,东西很多,很实用,所以转到我格子里! 总的来说,如果你要找js 的东西,而不看这两篇的话,肯定要多花好多时间!!哈哈!! 如果你找的javascript的东西的话,建议你 ctrl ...

  9. adodb.RecordSet的属性和方法

    为了更精确地跟踪数据,要用RecordSet组件创建包括数据的游标,游标就是储存在内存中的数据: rs = Server.CreateObject("ADODB.RecordSet" ...

最新文章

  1. mysql-视图、触发器、事务、存储过程、流程控制
  2. Win 8 自定义设置面版
  3. qq空间网页设计_网页设计中负空间的有效利用
  4. IdentityServer4-客户端的授权模式原理分析(三)
  5. 电脑html外链加密,WordPress 无需插件外链加密转内链
  6. Calico数据路径:IP路由和iptables
  7. JDBC学习笔记(全)
  8. 使用 Autofill 插件快速提交BUG
  9. linux 共享内存_linux进程间通信----IPC篇(一)----共享内存初识篇
  10. Bartender 让Mac选项列不再拥挤
  11. 用友NC的一些漏洞复现
  12. 前端常见浏览器兼容性问题解决方案
  13. Arduino ESP32深度睡眠触摸唤醒(触摸唤醒)
  14. 【读书】2020年阅读记录
  15. 搞机攻略(Android Root iOS越狱)
  16. WebGIS全栈修炼之路2——筑基,修出你的第一缕Cesium之气
  17. stm32上常用的几个通信协议简介及相关代码
  18. Canvas粒子交叉线条背景动态js特效
  19. Centos7分部骤编译单文件执行程序
  20. python中list的意思_python中的list是什么

热门文章

  1. 粉色控的幸运——HyperX毒刺幸运粉游戏耳机
  2. 【转贴】“被开通”工行“e支付”,巨额存款被盗,怎么破?
  3. java如何获取抖音弹幕
  4. Linux CentOS 查看操作系统版本信息
  5. matlab pg,pGLT Matlab代码分析
  6. Understanding the difficulty of training deep feedforward neural networks
  7. Reactor模型详解
  8. MFQ-PPDCS测试分析和测试设计 - 感觉有点虚,落地还是要结合实际工程应用
  9. pulse sensor心率传感器
  10. iOS界面中的三维坐标系