网络编程
位置:首页>> 网络编程>> Asp编程>> ASP怎么谈到应用到类的?(2)

ASP怎么谈到应用到类的?(2)

作者:cnbruce 来源:cnbruce博客 发布时间:2008-03-10 11:21:00 

标签:类,面向对象,class,asp

大家一般都是使用IIS的默认脚本语言VbScript作为ASP的服务器端执行语言的,在起初基本都是将该VBS脚本和HTML掺合在一起,实现着某些功能。比如需要在当前页显示最新的5条记录了,就可以这样。

1、先定义数据库的连接,如:

db_path = "../database/cnbruce2005.mdb"
Set conn= Server.CreateObject("ADODB.Connection")
connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(db_path)
conn.Open connstr

2、然后建立数据库记录集合,提取相关信息

 

Set rs = Server.CreateObject ("ADODB.Recordset")
sql = "Select top 5 * from [news] order by n_id desc"
rs.Open sql,conn,1,1 

3、最后通过循环的方法将数据显示出来

do while not rs.eof
response.write rs("n_title")
rs.movenext
loop
'还有最后的关闭和释放操作
rs.close
set rs=nothing

那么就是在 response.write rs("n_title") 这里,为了最终的网页设计的需要,在它的前前后后,估计还是需要加入一些其他的HTML标签元素的。于是很自然的,VBS脚本和HTML掺合了。


再来看,如果说有很多页都需要显示这5条记录,那是不是每个页都要这样去设置,当然最主要的只是每个页的设计样子不同。那这就是重复。重复在那里?那里可以不要重复?

1、针对数据库的连接,都直接建立了一个数据库连接文件conn.asp,内容即如上。

2、那么只要是需要使用数据库的,需要建立连接的,直接包含引用该数据库连接文件,即可了事。

<!--#include file="conn.asp"--> 

那么上面是省去的什么重复?每次数据库连接的重复。这是对于通用的某些共用的代码的防重复。接着来看,如果说我要这个页面显示5条,那个页面显示6条,又该如何?很显然,这只能是对当前页中的SQL语句进行简单的修改,比如原来是 top 5 的修改为 top 6。


OK,继续看,是不是还有重复?有,除了SQL查询定义的不同,其他的都是重复。

于是,继续想办法:可不可以自己来定义提取的条数?就是我想提取几条就几条,但程序只需要写一个。那么这时候,函数的就派上用场了啊。比如我定义这样的函数:




Function topnews(tnum) 
Set rs = Server.CreateObject ("ADODB.Recordset")
sql = "Select top "&tnum&" * from [news] order by n_id desc"
rs.Open sql,conn,1,1 
do while not rs.eof
response.write rs("n_title")
rs.movenext
loop 
rs.close
set rs=nothing 
End Function 

那么,就可以使用 topnews(5) 或者 topnews(6) 来完成需要了

……咋一看,似乎ASP用上函数这就算最终的完成了。因为主要的程序功能做成了函数模块,需要在前台页面使用该功能时,直接调用一下,必要时修改下函数参数值就是一个完美的结局/。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com