中华网络安全联盟 收藏本站
设为主页
商务合作
首页 新闻中心 行业动态 软件新闻 安全资讯 病毒预警 漏洞发布 操作系统 Dos Win9x Win2000 WinXP Win2003 WinVista Linux Unix
数据库 DB2 Access MSSQL MySQL Oracle Sybase 编程技术 ASP PHP JSP CGI/Perl XML .Net C/C++/C# VB VC Delphi Java 汇编
安全技术 安全教学 工具介绍 漏洞利用 病毒防范 入侵检测 防火墙 安全防范 汉化破解 攻击实例 加密解密 进程知识 技术论坛
中华网络安全联盟 >> 程序开发 >> ASP >> ASP应用 用GetString来提高ASP的速度
程序开发
Asp
PHP
JSP
CGI/Perl
XML
.Net
C/C++/C#
Visual Basic
Visual C++
Delphi
Java
汇编语言
ASP安全:简单学习ASP
ASP开发的WAP格式简易
简单一招用ASP实现对I
asp基础教程:网页间数
ASP优化:几招提高ASP
asp控制xml数据库的6段
ASP进阶:用ASP制作统
ASP进阶:验证身份证号
ASP应用 用GetString来提高ASP的速度
字体:

中华网络安全联盟    作者:奇趣    来源:奇趣技术网    时间:2008-5-28 9:41:42

许多ASP程序员都有过执行数据库查询,然后将查询结果用HTML表格的形式显示出来的经历吧。通常我们是这么做的:

<%
'Create connection / recordset
'Populate data into recordset object
%>
<TABLE>
<% Do While not rs.EOF %>
<TR>
<TD ><%=rs("Field1")% ></TD>
<TD ><%=rs("Field2")% ></TD>
.
</TR>
<% rs.MoveNext
Loop %>
</TABLE>

如果查询结果很多,服务器解释你的ASP script将花费大量的时间,因为有许多的

Response.Write语句要处理. 如果你将输出的全部结果放在一个很长的字符串里(从<TABLE >到</TABLE >),那么服务器只需解释一遍Response.Write语句,速度就会快得多 . 微软公司里的一些能干的家伙已经将想法变成了现实. (注意,这是一个ADO 2.0以上才有 的特性. 如果你还在使用以前版本的话,请升级到最新版)

有了GetString方法,我们就可以仅用一个Response.Write来显示所有的输出了,它就象 是能判断Recordset是否为EOF的DO ... LOOP循环.

GetString的用法如下(所有的参数都是可选的):

String = recordset.GetString(StringFormat, NumRows, ColumnDelimiter, RowDelimiter, NullExpr)

要从Recordset的结果里生成HTML表格,我们只需关心GetString的5个参数中的3个:

ColumnDelimiter(分隔记录集的列的HTML代码),RowDelimiter(分隔记录集的行的HTML 代码),和NullExpr(当前记录为空时应生成的HTML代码). 就象你在下面生成HTML表格的 例子里所看到的那样,每列用<TD >...</TD >分隔,每行用<TR >...</TR >分隔. 来 看看例子的代码吧.

<%@ LANGUAGE="VBSCRIPT" %>
<% Option Explicit 'Good coding technique
'Establish connection to DB
Dim conn
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DSN=Northwind;"
'Create a recordset
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM table1", conn
'Store our one big string
Dim strTable
strTable = rs.GetString(,,"</td ><td >","</td ></tr ><tr ><td >"
," ")
%>
<HTML>
<BODY>
<TABLE>
<TR ><TD>
<% Response.Write(strTable) %>
</TR ></TD>
</TABLE>
</BODY>
</HTML>
<%
'Cleanup!
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
%>

strTable字符串用于存放我们从"SELECT * FROM table1"结果生成的HTML表格的代码.

HTML表格的每列之间都将有</td ><td >的HTML代码,每行之间的HTML代码是</td ></td ><tr ><td >. GetString方法将输出正确的HTML代码并存放在strTable中,这样我们只需一行Response.Write便可以输出数据集中的所有记录. 让我们来看个简单的例 子,假设我们的查询结果返回了以下的行和列:

Col1 Col2 Col3
Row1 Bob Smith 40
Row1 Ed Frank 43
Row1 Sue Void 42

那么GetString语句返回的字符串将是:

Bob</td ><td >Smith</td ><td >40</td ><td ></td ></tr ><tr ><
td
>Ed ...

说实话,这个字符串看上去冗长而杂乱,但它就是我们想要的HTML代码. (注意看,我们在 手工书写的HTML代码中,将<TABLE ><TR ><TD >放在Response.Write的前面,将</TD ></TR ></TABLE >放在它的后面. 这是因为我们的格式化字符串中并不含有这些表格 头尾所需的字符串.)

字体:
 
设为主页 收藏本站 联系我们 友情连接 商务合作 网友留言
Copyright©2006-2008 中华网络安全联盟 All rights reserved.