GetRows和GetString在ASP记录集对象的使用分析
GetRows方法复制的记录集对象的多个记录到数组。
语法
复制代码代码如下所示:
recordset.getrows数组(行、启动、领域)
返回值
返回二维数组。
参数
行是一个可选,长整型表达式,指定要检索的记录数,默认值是adgetrowsrest(- 1)。
开始,一个字符串或一个长整数,用于计算在GetRows操作开始记录的书签。以下bookmarkenum值也可以使用。
不断的描述
adbookmarkcurrent从当前记录。
adbookmarkfirst从第一个记录开始。
adbookmarklast开始在记录的末尾。
字段是可选的,改变形状,代表一个单一的字段名称,序列位置,字段名称的数组,或顺序位置number.ado只返回这些字段的数据。
解释
GetRows方法可以用来复制的记录从记录集的二维数组。第一个标签领域第一、第二标识记录数。数组变量会自动调整到正确的尺寸时,GetRows方法返回的数据。
如果未指定的行参数的值,GetRows方法自动检索所有记录在记录集对象。如果备案的要求超过可用的记录,GetRows只返回的记录数。
如果记录集对象支持书签功能,您可以指定记录的书签记录值以指定方式GetRows方法将检索数据。
限制的领域由GetRows调用返回,一个单一的字段名称/号码或字段名称/编号的数组可以在字段参数传递。
在调用GetRows,下一条记录成为当前记录,如果没有更多的记录被记录,EOF属性设置为true。
getString方法
在查询数据库显示表时,我们经常使用while()、循环或…下一步的循环显示表,所以当我们想查询大量的数据,这将是缓慢的。在这一点上,我们可以使用getString()通过Recordset对象提供的方法(ADO必须升级到2)。
语法
复制代码代码如下所示:
STR = objrecordset.getstring(格式,N,coldel,rowdel,nullexpr)
参数描述:
objrecordset:打开记录集对象;
格式:可选,一般取默认值(默认值为2)。
n:可选,显示记录数,默认值为全部显示。
Coldel:可选的列分隔符
rowdel:可选,行分隔符
Nullexpr: optional, this parameter is used to fill the empty field!
用getString方法,我们可以通过一次response.write所有输出显示。它就像一个循环回路,可以判断记录集EOF。
使用这种方法,您可以自动地自动输出字符串,然后不进行while循环。只要RS对象建立并执行相应的操作,无论是返回一个或多个记录,甚至空记录,getString仍然有效。
从记录集的结果生成HTML表格,我们只需要关心3的5个参数:coldel GetString(柱分离的记录集的HTML代码),rowdel(分开的记录集的行的HTML代码),和nullexpr(HTML代码时产生的记录目前是空的)。
复制代码代码如下所示:
这个HTML的结果如下:
复制代码代码如下所示:
row1,字段值
row1,专业价值
row2,字段值
row2,专业价值
这是一个错误,然后看看生成的下拉菜单。
复制代码代码如下所示:
<
集=康涅狄格州执行(选择的价值,本文从selectoptionstable以文本)
optsuffix = vbnewline
valprefix =<期权价值=
valsuffix> =
选择= rs.getstring(valsuffix,optsuffix valprefix,--错误--)
下一行是它的关键!
选择=左(选择(选择),Len - Len(valprefix))
响应。写vbnewline
写valprefix选择响应。
响应。写
%>
如果你想建立一个正确的表单,解决这个错误,就去做。
复制代码代码如下所示:
<
集=康涅狄格州执行(SELECT * FROM表)
tdsuffix =vbnewline
trprefix = vbnewline
trsuffix = vbnewline vbnewline vbnewline
选择= rs.getstring(tdsuffix,trsuffix trprefix,--错误--)
下一行是它的关键!
Opts = Left (opts, Len (opts) -Len (trPrefix))
响应。写vbnewline
写trprefix选择响应。
响应。写vbnewline
%>
然后介绍一种完全不同的方法:
复制代码代码如下所示:
<
SQLselect、文本、从表中按文本排序
集=康涅狄格州执行(SQL)
响应。写,vbNewLine RS.GetString(,
%>
你用过吗
你看到了吗结果可以直接从查询中返回。
此外,您可以这样做:
复制代码代码如下所示:
<
从文本表中选择文本
集=康涅狄格州执行(SQL)
响应。写,vbNewLine RS.GetString(,
%>
下面是一个完整的例子:
脚本的输出:
711855星期三23 3 / 23 / 2005 1:33:37是
711856星期三23 3 / 23 / 2005 1:23:00是
711857星期三23 3 / 23 / 2005 1:26:34是
711858星期三23 3 / 23 / 2005 1:33:53是
711859星期三23 3 / 23 / 2005 1:30:36是
ASP的完整代码如下所示:
复制代码代码如下所示:
<
从adovbs.inc选定的常数:
const adclipstring = 2
声明我们的变量…总是好的做法!
昏暗的cnngetstring的ADO连接
昏暗的rstgetstring的ADO记录集
Dim strDBPath 'Path to our Access DB (*.mdb) file
昏暗的strdbdata的字符串,我们把所有数据
昏暗的strdbdatatable的字符串,我们把所有数据
只有这一次我们建立了一张桌子
听我们的MDB文件的物理路径。
strdbpath = server.mappath(db_scratch .mdb)
使用OLE DB创建连接
集cnngetstring = server.createobject(数据连接)
该行用于访问示例数据库:
cnngetstring.open提供商=微软。飞机。OLEDB数据源。4;=strdbpath ;
实际上我们使用SQL Server,所以我们使用这行代替。
评论这行,取消访问一个以上的
在自己的服务器上玩脚本。
cnngetstring。开放商= SQLOLEDB;数据源= 10.2.1.214;_
初始目录=样品;用户ID =样品;密码=密码;_
连接超时时间= 15;网络图书馆= dbmssocn;
使用连接对象执行简单查询。
存储结果记录在我们的变量。
集rstgetstring = cnngetstring。执行(选择从零开始)
这才是有趣的地方…通常我们会这样做
直到我们进入最后一个记录为止
在记录集。这次我们将得到所有的数据。
一下子把它扔到一根绳子上,所以我们
尽可能快地断开与DB的连接。
strdbdata = rstgetstring.getstring()
因为我这样做了两次…我重新定位
在第二次调用之前,在RS的开头。
rstgetstring.movefirst
这一次我要求以HTML表格格式返回所有内容:
strdbdatatable = rstgetstring.getstring(adclipstring,- 1,_
由于我对整洁HTML的渴望,我真的
接下来截断字符串。你看,getString只有
一个参数,用于行之间的关系而不是独立的。
最后一排后该放什么东西。因为这个
HTML表格的构建方式,这给我们留下了额外的信息。
在最后一张唱片之后。getString场所
最后的分隔符,因为它没有任何东西。
其他地方,在许多情况下,这很好。
用HTML有点怪异。大多数开发商根本
关上这一排,继续往前走,但我没办法
离开多余的行…特别是因为它会有一个
不同的细胞数。
我能说什么…这些事情往往使我烦恼。;
strdbdatatable =左(strdbdatatable,Len(strdbdatatable)- Len())
一些笔记about.getstring:
该方法实际上需要最多5个可选参数:
1。StringFormat -的格式返回
记录集的文本。adclipstring是唯一的
有效值。
2。numrows -行数返回。默认值
-表示所有行的1。
3。columndelimiter -放在柱间的文本。
默认为制表符
4。rowdelimiter -将在每行之间的文本
默认回车符
5。nullexpr表达时使用空值
回来了。默认为空字符串。
关闭记录集和连接和处理的对象。
请注意,在我们担心之前,我能做到这一点。
显示任何数据!
rstgetstring。关闭
集rstgetstring =没有
cnngetstring。关闭
集cnngetstring =没有
显示数据表。我真的不需要做
自从getString打电话也大多数都格式化
对于我们来说,构建表格文本。
响应。写vbcrlf
响应。写
写strdbdatatable响应。
响应。写vbcrlf
注:这里的输出格式,如果你不能得到你getString
没有任何参数:
响应。写vbcrlf这里的格式化版本:vbcrlf
响应。写vbcrlf
响应。写strdbdataresponse写vbcrlf。
那是所有的人!
%>