Recordset对象的作用是由数据库返回记录集。根据查询结果返回一个包含所查询数据的记录集,然后显示在页面上。因为删除、更新、添加操作不需要返回记录集,因此可以直接使用连接对象或是命令对象的Exexut方法,但是利用记录集对象有时会更简单,此外,通过记录集对象能够实现比较复杂的数据库管理任务,比如要采用分页显示记录就必须使用记录集对象。
Recordset对象可以用来代表表中的记录,可以把记录集看成是一张虚拟的表格,包含一条或多条记录(行),每条记录包含一个或多个字段,但任何时候只有一条记录为当前记录。
可以在非显式建立连接对象的情况下,直接打开一个带有查询的记录集,或是对命令对象的查询返回一个记录集。ADO提供这种灵活性,可以用最简单的方式指明一个字符串来说明连接方式,从而得到数据库的查询结果,ADO会自动创建所需要的连接对象。当然也可以显式创建连接对象和命令对象,这样可以获得更多的灵活性,实现更为强大的功能。
6.4.1 建立Recordset对象
创建记录集的方法主要有两种。可以先建立连接对象,再创建记录集对象;也可以在非显式建立连接对象的情况下,创建记录集对象。
第一种,先建立连接对象,再创建记录集对象,用法见下面的范例。
范例6-23:先建立连接对象,再创建记录集对象
<%
Set db=Server.CreateObject("ADODB.Recordset") ' 先建立连接对象
db.Open"zbsdbbszb"
Set rs=db.Execute(Select * from article) ' 建立记录集对象rs
%>
注意:为了说明问题的方便,给记录集对象取名为rs,本书下面的实例中记录集对象名均为rs。
第二种,在非显式建立连接对象的情况下,用Server对象的CreatObject方法建立并打开记录集对象,语法如下:
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open参数
Open方法的参数见表6-16。

表6-16 Open方法的参数
参数 说明
Source 数据库查询信息
ActiveConnection 数据库连接信息
CursorType 记录集中的指针类型,可选,见表6-17
LockType 锁定类型,可选,见表6-18
Options 数据库查询信息类型,可选,见表6-19

CursorType参数值表6-17:

表6-17 CursorType参数值
参数 说明
AdOpenForwardOnly 0 向前指针,默认值。只能用MoveNext方法或GetRows方法向前单向移动指针,所耗系统资源最少,执行速度也最快,但很多属性和方法将不能用
AdOpenKeyset 1 键盘指针,记录集中可以前后移动。某一用户修改数据后,其他用户可以立即显示,但禁止查看其他用户添加和删除的记录
AdOpenDynamic 2 动态指针,记录集中可以前后移动。所有修改会立即在其他客户端显示,功能强大,但所耗系统资源也多
AdOpenStatic 3 静态指针,记录集中可以前后移动。所有修改不会在其他客户端显示

说明:
▲ 关于指针(又称游标)。所谓记录集,如同一个电子表格,包含所获取的若干记录,每条记录又包含若干字段。如果记录不为空,打开记录集后,指针指向第一条记录。可以通过移动指针在记录集中漫游,指针所指向的记录为当前记录,当前记录只能有一条。
▲ 在默认情况下,当打开记录集,为向前指针,只能用MoveNext方法向前单向移动指针,其他操作不受支持。如果需要编辑、添加和删除记录,想使用可前后移动的指针,并且需要看到其他用户的对数据库的修改,就需要使用其他类型的指针。
LockType参数值表6-18:

表6-18 LockType参数值
参数 说明
AdLockReadOnly 1 只读,默认值,适用于仅浏览数据
AdLockPessimistic 2 只能同时被一个用户所修改,修改时锁定,完毕解锁
AdLockOptimistic 3 可以同时被多个用户所修改,直到用update方法更新记录才锁定
AdLockBatchOptimistic 4 数据可以被修改,且不锁定其他用户,指定数据成批更新

说明:
▲ 锁定目的是确保数据的完整性,以防止更改被覆盖。
▲ 当不需要修改记录,应该使用默认的只读记录集,这样执行速度快,消耗系统资源少;如果是需要修改记录,一般情况下,选择取值2,记录只锁定一下,即可保护更改操作,也不消耗过多的系统资源。
Options参数值表6-19:

表6-19 Options参数值
参数 说明
AdCmdUnkown -1 表示CommandText参数类型无法确定,默认值
AdCmdText 1 表示CommandText参数是命令类型
AdCmdTable 2 表示CommandText参数是表名称
AdCmdStoreProc 3 表示CommandText参数是存储过程名称

范例6-24:建立记录集对象
<%
Set rs=Server.CreateObject("ADODB. Recordset")
rs.Open" Select * from article","dsn=zbsdbbszb" ' 在Open方法中给出数据源
%>
说明:
▲ 非显式创建连接对象和命令对象。
▲ Select * from article
这个查询字符串定义后,记录集对象会自动把它转换到一个命令对象上。
▲ dsn=zbsdbbszb
这是创建连接对象的连接字符串。
6.4.2 Recordset记录集对象的属性
Recordset记录集对象常用属性见表6-20。

表6-20 Recordset记录集对象常用属性见表
属性 说明
Source 指示记录集对象中数据的来源(命令对象名或SQL语句或表名)
ActiveConnection 连接对象名或包含数据库的连接信息的字符串
CursorType 记录集中的指针类型,可选,见表6-16
LockType 锁定类型,可选,见表6-17
MaxRecors 控制从服务器获取的记录集的最大记录数
CursorLocation 控制数据处理是在客户端还是在服务器端
Filter 控制要显示的内容
Bof 记录集的开头
Eof 记录集的结尾
RecordCount 记录集总数
PageSize 分页显示时每一页的记录数
PageCount 分页显示时数据页的总页数
AbsolutePage 当前指针所在的数据页
AbsolutePosition 当前指针所在的记录行

Recordset记录集对象常用属性具体说明如下。
1.Source
用于设置数据库的查询信息,查询信息可以是命令对象名或SQL语句或表名,语法如下:
rs.Source=查询信息
2.ActiveConnection
用于设置数据库的连接信息,连接信息可以是连接对象名或包含数据库的连接信息的字符串,语法如下:
rs.ActiveConnection=连接信息
3.CursorType
用于设置记录集指针类型,取值参见表6-17,语法如下:
rs.CursorType=值
默认为0,即指针只能前移。如果要让指针自由移动,一般设为键盘指针1。
4. LockType
用于设置记录集的锁定类型。取值参见表6-18,语法如下:
rs.LockType=值
默认为1,只读属性。如果要利用记录集对象进行添加、删除、更新等操作,只能由一个用户修改,一般需要设置其属性为2。
5.MaxRecors
用于设定从服务器上得到的最大记录数,语法如下:
rs.MaxRecors=最大记录数
通常这种方法不常用,而是使用SQL语句来指定所得到的最大记录数,”Select Top 整数…”。
6.CursorLocation
用于设置数据处理是在客户端还是在服务器端。取值参见表6-21,语法如下:
rs.CursorLocation =值

表6-21 CursorLocation参数值
参数 说明
AdUseClient 1 客户端处理
AdUseServer 2 服务器端处理
AdUseClientBatch 3 动态处理,在客户端处理,处理时连接切断,处理完毕重新连接

有的时候,为了减轻服务器的工作负担,可以根据情况的需要,设置在客户端处理。
7.Filter
用于设置要显示的内容。取值参见表6-22,语法如下:
rs.Filter =值

表6-22 Filter参数值
参数 说明
AdFilterNone 0 显示所有数据
AdFilterpendRecords 1 只显示没有修改过的数据
AdFilterAffectedRecords 2 只显示最近修改过的数据
AdFilterFetchedRecords 3 只显示暂存于客户端缓存中的数据

8.Bof
用于判断当前记录指针是否在记录集的开头,如在开头,返回True,否则返回Falsh。如果记录集为空,也返回True。
9.EOF
用于判断当前记录指针是否在记录集的结尾,如在结尾,返回True,否则返回Flash。如果记录集为空,也返回True。
记录集有两个特殊位置:Bof和 EOF。Bof表示记录集的开头,位于第一条记录之前;EOF表示记录集结尾,位于最后一条记录之后。Bof 为 True,当前指针指到 RecordSet 的第一条记录; Eof 为 True,当前指标指到 RecordSet 的最后一条记录。如果记录集不为空,指针可以在Bof、所有记录和Eof移动。如果记录集为空,此时指针同时指向Bof和 Eof,它们的值均为True。
具体判断如下:若当前记录的位置是在一个 Recordset 对象第一行记录之前时, Bof 属性返回 True,反之则返回 False。;若当前记录的位置是在一个 Recordset 对象最后一行记录之后时,Eof 属性返回 True,反之则返回 False;Bof 与 Eof 都为 False,表示指标位于 RecordSet 的当中;Bof 与 Eof 都为 True,在 RecordSet 里没有任何记录。
从以上可知,通过检验 Bof 与 Eof 属性,可以得知当前指针所指向的 RecordSet 的位置,使用 Bof 与 Eof 属性,可以得知一个 Recordset 对象是否包含有记录或者得知移动记录行是否已经超出该 Recordset 对象的范围。
判断记集录是否为空的代码如下:
< %
if not rs.bof and rs.eof then ' 如果不是开头,也不是结尾,则执行

End if
%>
循环输出记录集记录的代码如下:
< %
Do while not rs.eof ' 如果没有到达记录集未尾,则循环输出下面的记录

Rs.MoveNext
Loop
%>
10.RecordCount
用于返回记录集中的记录总数。我们常用 RecordCount 属性来找出一个 Recordset 对象包括多少条记录。例如:
< % Rsponse.Write rs.RecordCount %>
要注意的是,使用RecordCount必须设置指针类型为键盘指针1或是静态指针3。
11.PageCount
用于设置分页显示时数据页的总数。使用 PageCount 属性,决定 Recordset 对象包括多少“页”的数据。这里的“页”是指数据记录的集合,大小等于 PageSize 属性的设定,即使最后一页的记录数比 PageSize 的值少,最后一页也算是 PageCount 的一页。
12. PageSize 属性
用于设置分页时每一页所显示的记录数。PageSize 属性是决定 ADO 存取数据库时如何分页显示的关键,使用它就可以决定多少记录组成一个逻辑上的“1页”。  
第10、11、12条属性通常是用于分页显示,具体运用见下面的范例。
13.AbsolutePage
用于设置当前指针位于哪一页。语法如下:
rs.AbsolutePage =整数值
14.AbsolutePosition
用于设置当前指针所在的记录行。语法如下:
rs.AbsolutePosition =整数值
后面的这些属性使用时,一般需要设置指针类型为键盘指针1。
6.4.3 Recordset记录集对象的方法
Recordset记录集对象的常用方法见表6-23。

表6-23 Recordset记录集对象的方法
方法 说明
Open 打开记录集
Close 关闭记录集
Requery 重新打开记录集
Move 指针移至指定记录
MoveFirst 指针移至第一条记录
MoveLast 指针移至最后一条记录
MovePrevious 指针移至上一条记录
MoveNext 指针移至下一条记录
AddNew 添加记录
Delete 删除记录
Update 更新记录
CancelUpdate 取消更新
GetRows 从记录集得到多行记录
Resync 与数据库服务器同步更新

具体说明如下。
1. Open
用于打开记录集,语法如下:
rs.Open参数
2. Close
用于关闭记录集,语法如下:
rs.Close
使用Close方法关闭记录集对象,Close方法并不会将记录集对象从内存中清除,如果的确不再需要这个对象,可以用下列语句清除这个对象,以完全释放所占用的系统资源。
<%
Rs.Close
Set rs=nothing
%>
3. Requery
用于重新打开记录集,语法如下:
rs.Requery
4.Move
用于将指针移动到指定记录,语法如下:
rs.Move NumRecords,Start
NumRecords是一个正负数运算式,用于设定当前记录位置的前后移动数目,如果为正值表示向前移动(即记录集的未尾方向)多少条记录,如果为负值表示向后移动(即记录集的开始方向)多少条记录;Start是一个可选的项目,用来指定记录起始的位置,默认为当前指针位置。
5.MoveFirst
用于将指针移动到第一条记录,语法如下:
rs.MoveFirst
6.MoveLast
用于将指针移动到最后一条记录,语法如下:
rs.MoveLast
7.MovePrevious
用于将指针移动到上一条记录,语法如下:
rs.MovePrevious
8.MoveNext
用于将指针移动到下一条记录,语法如下:
rs.MoveNext
Move 和MoveFirst 、MoveLast、MoveNext、MovePrevious方法用于指针的移动。MoveNext是最常用的方法,执行速度快。如果使用其他方法,一般要设置指针类型为键盘指针。在使用这几个有关指针移动的方法之前,最好用Bof和Eof进行判断是否已达记录集的边界,否则超越边界,就会出错。
9.AddNew
用于向数据库添加记录,语法如下:
rs.AddNew 添加记录的信息
10.Delete
用于向数据库删除当前记录,语法如下:
rs.Delete
指针当前指向哪条记录,就是当前记录。
11.Update
用于向数据库更新记录。它有两种情况。
第一种,执行完AddNew 或Delete后,执行Update更新,语法如下:
rs.Update
第二种,直接用Update方法更新,语法如下:
rs.Update 更新记录的信息
例如,以下是采用第一种方法更新数据
<%

rs.AddNew 添加记录的信息
rs.Update
%>
如果采用第二种方法,可以直接写成:
<%

rs.Update 添加记录的信息
%>
12.CancelUpdate
用于取消更新记录的操作,语法如下:
rs.CancelUpdate
13.GetRows
用于从记录集中的当前记录开始返回多行记录,它将返回一个二维数组,语法如下:
rs.GetRows(number)
参数用于设置要返回多少条记录,默认为-1,也就是全部记录。在返回的二维数组中,第一维表示列,第二维表示行。
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属性对象,这里不作过多叙述。

你可以通过这个链接引用该篇文章:http://roneal.bokee.com/tb.b?diaryId=14209388

更多相关文章

  1. GenericObjectPool对象池异常排查
  2. Java对象创建的过程及对象的内存布局与访问定位
  3. request对象和response对象
  4. 20162305 实验二 Java面向对象程序设计 实验报告
  5. Java类的加载和对象创建流程的详细分析
  6. Java第三次作业——面向对象基础(封装)
  7. NullPointerException: android.support.v4.app.FragmentHostCal
  8. 如何将.net DateTime作为json字符串解析为java的Date对象
  9. Android中findViewById()h获取EditText 空指针问题

随机推荐

  1. 获取输出为管道的命令的pid
  2. Linux----------zabbix监控-应用实例
  3. LINUX下搭建简单临时的WWW服务器
  4. 转:——Windows和Linux进程间通信区别
  5. Linux Socket 网络编程 (IBM网站)
  6. centos系统安装redis4.0(单机)
  7. 对linux字符设备的理解(整体架构)
  8. 【嵌入式Linux学习七步曲之第五篇 Linux
  9. 如何查看最近安装的rpms?
  10. Uncompressing Linux... done, booting t