选择显示字体大小

asp进阶教程:留言查询功能(一)

     当有一天,你的心情突然变得很坏,但是巧合的是,在你的留言簿中你的网友留了一句很让你振奋的话,于是你很快就重拾了快乐的心情。但是在不久后你又一次心情变坏,但是这次却没有上次那么幸运,因为没有人给予你鼓励,于是你自然就想再看一看上次那句令你很受振奋的话。这时你就会想:假如我的留言簿有留言查询功能就好了!


  为了能达成你的心愿,于是我决定在本章教程为你解说具有留言查询功能的留言簿程序。在讲解之前,让我们还是先来学习将在源程序中用到的command对象。
  

  首先让我们先来了解一下command对象所提供的属性和方法以及它们的相应功能


activeconnection属性--建立与connection通道的链接关系
commandtext属性--指定数据查询信息
commandtimeout属性--开始执行数据查询后允许继续执行的最长时间
commandtype属性--指定数据查询信息的类型
prepared属性--指定数据查询信息是否要先行编译
createparameter方法--建立一个新的参数对象
execute 方法--对数据库提出数据查询


  command对象也是ado对象集合的一员,它主要用来控制对数据库发出的请求信息,告诉数据库:“要哪个数据表里的数据?要什么字段内的数据?数据必须符合什么限制?请把这些符合我要求的数据全部存放在recordset对象内返回回来!”那么说到底,command对象的功能就是执行sql(structured query language结构式查询语言,是用于对存放在计算机数据库中的数据进行组织、管理和检索的一种工具;是一种特定类型的数据库--关系数据库)命令。假如你是一位比较细心的人,你一定还记得我在第三章中其实就已经用上了sql命令,于是你就会对我发问:“你当时并没有用到command对象呀?”


  确实,没有command对象我们也一样可以执行sql命令。我们利用connection对象或是利用recordset对象同样可以执行sql命令。方法如下所示:



set rs = conn.execute(sql命令)
' 利用connection对象执行select sql命令,然后将结果指定给recordset对象。
conn.execute sql命令
' 利用connection对象执行数据操作的sql命令。
set rs = server.createobject("adodb.recordset")
rs.open sql命令,conn


' 先建立recordset对象,再执行sql命令选取数据。
利用command对象又是如何来执行sql命令的呢?大家请看:
set cmd = server.createobject("adodb.command")
set cmd.activeconnection = conn
cmd.commandtext = sql
set rs = cmd.execute


' 可见利用command对象来执行sql命令,得先将connection对象及sql命令设置给对象command的activeconnection及commandtext属性,然后才执行cmd.execute函数。


  由上述我们可以知道,原来使用recordset对象和使用command对象来执行sql命令,本质都是一样的。既然如此,那么我们为什么还要利用command对象呢?为了说明这个问题,我分别用两种不同的方法来为留言簿添加留言查询功能,其中查询“留言簿过去五天留言记录”和“留言记录日期查询”是利用command对象来执行sql命令的,而“留言者姓名查询”和“最新十条留言记录”的查询则是利用recordset对象来执行sql命令。

  讲了这许多也该入正题了,我们首先来学习的是利用recordset对象来实现“留言者姓名查询”和“最新十条留言记录”的查询。以下我们还是通过分步骤的方法来进行说明。

步骤一: 首先我们得设计一个留言查询的界面(datesearch.asp),如下图所示:





步骤二:利用recordset对象来执行sql命令,实现“最新十条留言记录”的查询。
set conn = server.createobject("adodb.connection")
dbpath = server.mappath("book2.mdb")
conn.open "driver={microsoft access driver (*.mdb)};dbq=" & dbpath
sql ="select top 10 * from guestbook order by id desc"


  这里用“ order by id desc”表示按照“id”字段从大到小排序。因为在数据库中我将id字段的数据类型设为“自动编号”,留言记录的id将按先后从小到大进行排序,所以要查询最新的十条留言即是查询最后的十条id的记录。
set rs = conn.execute( sql )

  利用recordset对象来执行sql命令,实现“留言者姓名”的查询的原理与上述一致,程序如下所示:


namesearch = request.form("name")
namesearch = replace(namesearch,"'","''")
'还记得我在第三章中介绍sqlstr函数时的说明吗?忘了就到回去看看吧。
set conn = server.createobject("adodb.connection") dbpath =server.mappath("book2.mdb")
conn.open "driver={microsoft access driver (*.mdb)};dbq=" & dbpath
sql ="select * from guestbook where 姓名 = '"&namesearch&"' order by id desc"
set rs = conn.execute( sql )


步骤三:设计查询结果的web页面(search.asp)。


< %
sub search( rs )
response.write "< center>< table border=2 width=90% cellpadding=2 cellspacing=2 bordercolorlight=#000000 bordercolordark=#ffffff bordercolor=#ffffff bgcolor=#ffffff align=center>"
response.write "< tr bgcolor=#33cccc>"
for i=0 to rs.fields.count-1
response.write "< td>" & rs.fields(i).name & "< /td>"
next
response.write "< /tr>"
'" & rs.fields(i).name & "表示显示数据表的“字段抬头”
while not rs.eof
response.write "< tr>"
for i=0 to rs.fields.count-1
response.write "< td>" & rs.fields(i).value & "< /td>"
next
response.write "< /tr>"
rs.movenext
wend
response.write "< /table>< /center>"
' " & rs.fields(i).value & "表示显示数据表的“数据字段内容”
end sub
%>


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons