|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于WindowsNT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失;教程当有一天,你的心境俄然变得很坏,可是偶合的是,在你的留言簿中你的网友留了一句很让你奋发的话,因而你很快就重拾了康乐的心境。可是在不久后你又一次心境变坏,可是此次却没有前次那末侥幸,由于没有人赐与你勉励,因而你天然就想再看一看前次那句令你很受奋发的话。这时候你就会想:假设我的留言簿有留言查询功效就行了!
为了能告竣你的希望,因而我决意在本章教程为你讲授具有留言查询功效的留言簿程序。在解说之前,让我们仍是先来进修将在源程序顶用到的COMMAND工具。
起首让我们先来懂得一下Command工具所供应的属性和办法和它们的响应功效
ActiveConnection属性--创建与Connection通道的链接干系
CommandText属性--指定命据查询信息
CommandTimeout属性--入手下手实行数据查询后同意持续实行的最长工夫
CommandType属性--指定命据查询信息的范例
Prepared属性--指定命据查询信息是不是要先行编译
CreateParameter办法--创建一个新的参数工具
Execute办法--对数据库提出数据查询
Command工具也是ADO工具汇合的一员,它次要用来把持对数据库收回的哀求信息,告知数据库:“要哪一个数据内外的数据?要甚么字段内的数据?数据必需切合甚么限定?请把这些切合我请求的数据全体寄存在Recordset工具内前往返来!”那末说究竟,Command工具的功效就是实行SQL(StructuredQueryLanguage布局式查询言语,是用于对寄存在盘算机数据库中的数据举行构造、办理和检索的一种工具;是一种特定范例的数据库--干系数据库)命令。假设你是一名对照仔细的人,你必定还记得我在第三章中实在就已用上了SQL命令,因而你就会对我提问:“你事先并没有效到Command工具呀?”
的确,没有Command工具我们也一样能够实行SQL命令。我们使用Connection工具或是使用Recordset工具一样能够实行SQL命令。办法以下所示:
Setrs=conn.Execute(SQL命令)
使用Connection工具实行SelectSQL命令,然后将了局指定给Recordset工具。
conn.ExecuteSQL命令
使用Connection工具实行数据操纵的SQL命令。
Setrs=Server.CreateObject("ADODB.Recordset")
rs.OpenSQL命令,conn
先创建Recordset工具,再实行SQL命令拔取数据。
使用Command工具又是怎样来实行SQL命令的呢?人人请看:
Setcmd=Server.CreateObject("ADODB.Command")
Setcmd.ActiveConnection=conn
cmd.CommandText=sql
Setrs=cmd.Execute
可见使用Command工具来实行SQL命令,得先将Connection工具及SQL命令设置给工具Command的ActiveConnection及CommandText属性,然后才实行cmd.Execute函数。
由上述我们能够晓得,本来利用Recordset工具和利用Command工具来实行SQL命令,实质都是一样的。既然云云,那末我们为何还要使用Command工具呢?为了申明这个成绩,我分离用两种分歧的办法来为留言簿增加留言查询功效,个中查询“留言簿已往五天留言纪录”和“留言纪录日期查询”是使用Command工具来实行SQL命令的,而“留言者姓名查询”和“最新十条留言纪录”的查询则是使用Recordset工具来实行SQL命令。
讲了这很多也该进正题了,我们起首来进修的是使用Recordset工具来完成“留言者姓名查询”和“最新十条留言纪录”的查询。以下我们仍是经由过程分步骤的办法来举行申明。
步骤一:起首我们得计划一个留言查询的界面(Datesearch.ASP),以下图所示:
步骤二:使用Recordset工具来实行SQL命令,完成“最新十条留言纪录”的查询。
Setconn=Server.CreateObject("ADODB.Connection")
DBPath=Server.MapPath("book2.mdb")
conn.Open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&DBPath
sql="selecttop10*fromguestbookorderbyIDDesc"
这里用“orderbyIDDesc”暗示依照“ID”字段从年夜到小排序。由于在数据库中我将ID字段的数据范例设为“主动编号”,留言纪录的ID将按前后从小到猛进行排序,以是要查询最新的十条留言便是查询最初的十条ID的纪录。
Setrs=conn.Execute(sql)
使用Recordset工具来实行SQL命令,完成“留言者姓名”的查询的道理与上述分歧,程序以下所示:
namesearch=request.form("name")
namesearch=Replace(namesearch,"","")
还记得我在第三章中先容SqlStr函数时的申明吗?忘了就到归去看看吧。
Setconn=Server.CreateObject("ADODB.Connection")DBPath=Server.MapPath("book2.mdb")
conn.Open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&DBPath
sql="select*fromguestbookwhere姓名="&namesearch&"orderbyID Desc"
Setrs=conn.Execute(sql)
步骤三:计划查询了局的Web页面(Search.asp)。
<%
SubSearch(rs)
Response.Write"<CENTER><tableborder=2width=90%cellpadding=2cellspacing=2bordercolorlight=#000000bordercolordark=#FFFFFFbordercolor=#FFFFFFbgcolor=#FFFFFFalign=center>"
Response.Write"<TRBGCOLOR=#33CCCC>"
Fori=0tors.Fields.Count-1
Response.WRITE"<TD>"&rs.Fields(i).Name&"</TD>"
Next
Response.Write"</TR>"
"&rs.Fields(i).Name&"暗示显现数据表的“字段仰面”
WhileNotrs.EOF
Response.Write"<TR>"
Fori=0tors.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&"暗示显现数据表的“数据字段内容”
EndSub
%>
ASP最大的缺点在于网络的安全性和可靠性,企业将经营数据放在开放的平台上,最大的担忧就是如何保证这些数据不被其他人破坏。 |
|