|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。还无法完全实现一些企业级的功能:完全的集群、负载均横。运转情况:IIS剧本言语:VBScript数据库:Access/SQLServer数据库言语:SQL1.提要:
不管是在论坛,仍是旧事体系,或是下载体系等静态网站中,人人常常会看到搜刮功效:搜刮帖子,搜刮用户,搜刮软件(总之搜刮关头字)等,本文则是先容怎样创建一个高效有用的,基于ASP的站内多值搜刮。
本文面临的是“多前提含混婚配搜刮”,了解了多前提的,单一前提搜刮也不外小菜一碟了。一样平常来说,有两种办法举行多前提搜刮:列举法和递进法。搜刮前提不太多时(n<=3),可以使用列举法,其语句频度为2的n次方,成指数增加,n为前提数。很分明,当前提增加今后,不管从程序的效力仍是可完成性思索都应接纳递进法,其语句频度为n,成线性增加。必要指出的是,列举法思绪十分复杂,逐一判别前提是不是为空,再按非空前提搜刮,同时能够使用真值表手艺来凑合前提极多的情形(信任没人往干这类事,4前提时就已要写16组语句了);递进法的头脑办法较为奇妙,重在了解,其巧就巧在一是利用了标记位(flag),二是妙用SQL中字符串联接符&。上面以实例来说解引擎的创建。
2.实例:
我们创建一通信录查询引擎,数据库名为addressbook.mdb,表名为address,字段以下:
IDNameTelSchool1张三33333333电子科技年夜学盘算机系2李四44444444四川年夜先生物系3王二22222222东北交通年夜学修建系…………
Web搜刮界面以下:
姓名:德律风:黉舍:搜刮按钮
接纳列举法的源程序以下:<%@CODEPAGE="936"%>毗连数据库<%dimconndimDBOathdimrsdimsqlSetconn=Server.CreateObject("ADODB.Connection")DBPath=Server.MapPath("addressbook.mdb")conn.Open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&DBPathSetrs=Server.CreateObject("ADODB.Recordset")从Web页猎取姓名、德律风、黉舍的值dimNamedimTeldimSchoolName=request("Name")Tel=request("Tel")School=request("School")列举法的搜刮中心,由于有3个前提以是要写8组If判别语句iftrim(Name)=""andtrim(Tel)=""andtrim(School)=""thensql="select*fromaddressorderbyIDasc"endififtrim(Name)=""andtrim(Tel)=""andtrim(School)""thensql="select*fromaddresswhereSchoollike%"&trim(School)&"%orderbyIDasc"endififtrim(Name)=""andtrim(Tel)""andtrim(School)=""thensql="select*fromaddresswhereTellike%"&trim(Tel)&"%orderbyIDasc"endififtrim(Name)=""andtrim(Tel)""andtrim(School)""thensql="select*fromaddresswhereTellike%"&trim(Tel)&"%andSchoollike%"&trim(School)&"%orderbyIDasc"endififtrim(Name)""andtrim(Tel)=""andtrim(School)=""thensql="select*fromaddresswhereNamelike%"&trim(Name)&"%orderbyIDasc"endififtrim(Name)""andtrim(Tel)=""andtrim(School)""thensql="select*fromaddresswhereNamelike%"&trim(Name)&"%andSchoollike%"&trim(School)&"%orderbyIDasc"endififtrim(Name)""andtrim(Tel)""andtrim(School)=""thensql="select*fromaddresswhereNamelike%"&trim(Name)&"%andTellike%"&trim(Tel)&"%orderbyIDasc"endififtrim(Name)""andtrim(Tel)""andtrim(School)""thensql="select*fromaddresswhereNamelike%"&trim(Name)&"%andTellike%"&trim(Tel)&"%andSchoollike%"&trim(School)&"%orderbyIDasc"endifrs.opensql,conn,1,1显现搜刮了局ifrs.eofandrs.bofthenresponse.write"今朝通信录中没有纪录"elsedowhilenotrs.eofresponse.write"姓名:"&rs("Name")&"德律风:"&rs("Tel")&"黉舍:"&rs("School")&"<br>"rs.movenextloopendif断开数据库setrs=nothingconn.closesetconn=nothing%>
了解上述程序时,侧重揣摩中心部分,8组语句逐一对应了3个搜刮框中的8种形态
NameTelSchool空空空空空非空空非空空空非空非空非空空空非空空</p>因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。 |
|