精华区 [关闭][返回]

当前位置:月光软件>>讨论区精华>>〖软件开发〗>>● ASP>>★ASP的技巧★>>提升性能>>加速ASP方法之一:使用GetString函数

主题:加速ASP方法之一:使用GetString函数
发信人: zuzu_zuzu2000(zuzu)
整理人: dongbao(2002-04-19 16:44:57), 站内信件
对数据库最简单的应用就是将数据从数据库中取出并显示给用户。在网络建设的初期,将数据显示给用户就会给制作者带来极大的成就感。可是当网络访问量逐渐加大,效率问题将超过显示问题而变成最重要的问题。ASP是一种非常方便的语言,可以提高它的运行效率将会大大的提升网站的质量。 


 下面的代码是将数据库中读出的数据放在表格中显示在用户的浏览器上。 


 < %


 ’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语句,速度就会快得多. 


 有了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 >放在它的后面. 这是因为我们的格式化字符串中并不含有这些表格头尾所需的字符串.) 



----
 不一样的主页zuzu2001.go.163.com

[关闭][返回]






转载请注明:转载自 月光程序代码网 [ http://www.moon-soft.com ]