欢迎光临
我们一直在努力

SQL Server数据库模糊查询的ASP实现-ASP教程,数据库相关

建站超值云服务器,限时71元/月

asp及其ado组件简介
—- asp(active server pages)是一种服务器端的脚本语言,可以把它看作是html、脚本和 cgi(通用网关接口)的结合。但它却比html保密性更高,比脚本更灵活,比cgi更高效。
—-asp程序的扩展名为“.asp“,它可以包含html语句、 asp命令、文本及其他可以嵌套于htnk文档的所有描述性语言(如:vbscripts,javascripts 等)。其中asp命令必须位于asp定义的符号“<%”、“%>”之间,当用户访问asp网页时,web服务器先将“<%”、“%>”之间的asp命令解析执行,然后将结果响应给用户,这样用户就无法看到asp源文件。这就是asp保密性高的原因。

—-asp内置了ado组件,因此可以轻松地存取各种数据库。 ado是微软公司提供给开发者在网页中存取数据库的最新技术。ado组件主要包括 connection对象、command对象、parameter对象、recordset对象、field对象、property 对象、error对象等七个对象和fields数据集合、properties数据集合、parameters数据集合、errors数据集合等四个数据集合。

—-connection对象负责与数据源(数据库或文本文件)的连接;

—-command对象传递指定的sql命令;

—- parameter对象提供command对象所需的sql命令参数;

—-recordset对象负责浏览与操作从数据源中取出的数据;

—-field对象指定recordset对象的具体字段。

—-这是与数据库存取密切相关的几个对象。

sql server数据库的模糊查询
—-sql server 数据库的select查询命令可以实现数据库的查询。在select命令的where子句中使用“like”关键词和“%”通配符就可以做到模糊查询。下面语句在pubs数据库的authors表中查找name字段的值含有“smith”字符串的所有记录。
use pubs
select * from authors
where name like “%smith%”
go

—-sql server数据库还提供了一种叫做stored procedure (存储过程)的数据库对象,用户可以将一些常用的命令过程以存储过程的形式存储起来,需要运行这些存储过程时,只要输入存储过程名即可。这样不仅简化了操作,而且提高了效率(存储过程的运行比一个个的命令高效得多)。存储过程名的选取应符合sql server的命名规则,当它以“#”开头时,表示一个临时存储过程,它只在应用程序运行时存在,程序结束后,被自动删除。

—-下面的语句创建一个名字为#query的临时存储过程:

create procedure #query
as
select * from authors
where name like “%smith%”

数据库模糊查询的asp实现
—-在asp命令中,没有类似于sql命令中的“like”关键词和“%”通配符,因此仅仅使用asp命令实现数据库的模糊查询有一定的困难。笔者在编程实践中利用ado组件的connection对象、recordset对象分别动态创建、运行数据库的临时存储过程对象,不仅实现了模糊查询,而且具有很好的交互性。
—-1.创建一个用户交互页面input.html

< html >
< head >
< title >用户输入界面< /title >< /head >
< body >
< center >< font face=“隶书” size=+3 >
数据库查询< /font >< /center >
< form method=“post” action=“query.asp” >
按字段< select name=“leixing” >
< option value=“name” >姓名< /option >
< option value=“sex” >性别< /option >
< /select >进行查询< br >
关键词< input type=“text” name=“keyword” size=40 >< br >
< input type=“submit” value=“查询” >
< input type=“reset” value=“清除” >
< /form >
< /body >
< /html >

—-当用户在此客户端页面上输入数据后,这些数据通过 form数据集合由“post”方法传递到服务器端的query.asp页面,由query.asp来完成查询功能。

—-2.创建query.asp文件,实现模糊查询

< html >
< head >
< title >< /title >
< /head >
< body >
< %
response.write “< center >< font face=”“隶书”
“size=+2 >查询结果< /font >< /center >”
dim qucol,str,str5
‘------获取form数据 --------
qucol=request.form(“leixing”)
str=request.form(“keyword”)
‘--------生成where子句-------
str5=qucol&“like “&“”“%”&str&“%”“”
‘建立数据库连接。carlos:数据源名;sa:
用户名;pubs:数据库名
setconn= server.createobject(“adodb.connection”)
conn.open “dsn=carlos;uid=sa;pwd=;database=pubs”
for i=0 to conn.errors.count-1
response.write conn.errors(i).description&“< br >”
next
‘----创建临时存储过程----------
commandtext=“create procedure
#query”&session(“num”)&_
“as select * from authors where “&str5
conn.execute commandtext,0,-1

‘-------创建recordset对象-------
set rs=server.createobject(“adodb.recordset”)
‘------运行临时存储过程--------
const adopendynamic=2
const adlockoptimistic=3
const adcomdstoredproc=8
commandtext=“#query”&session(“num”)
session(“num”)=session(“num”)+1
rs.open commandtext,conn,adopen
dynamic,adlockoptimistic,_
adcomdstoredproc
‘---------显示查询结果 ------
response.write “< table border=”“1″“ >”
response.write“< tr >”
for i=0 to rs.fields.count-1
response.write “< td >”&rs(i).name&“< /td >”
next
response.write “< /tr >”
while not rs.eof
response.write“< tr >”
for i=0 to rs.fields.count-1
css=rs(i).value
if css< >“” then
response.write “< td >”&css&“< /td >”
else
response.write “< td >.< /td >”
end if
next
rs.movenext
response.write “< /tr >”
wend
response.write“< /table >”
rs.close
set rs=nothing
set conn=nothing
% >
< !-- 查询结束,返回输入界面,开始下次查询 -- >
< a href=“input.html” >返回到查询< /a >
< /body >
< /html >

—-这里的临时存储过程名为#query1(#query2,# query3,……),每次的名字都不同,以避免每次执行query.asp时创建同名的存储过程。由于我们创建的是临时存储过程,当用户查询结束退出时,这些存储过程会自动删除,不会对数据库造成任何影响。 

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » SQL Server数据库模糊查询的ASP实现-ASP教程,数据库相关
分享到: 更多 (0)