推荐:ASP 3.0高级编程(三十八)8.3.3 使用连接状态将连接字符串存入应用程序变量是一个常用的技巧,同使用一个包含文件一样有效。例如,可以在global.asa文件中加入下面的代码:Sub Application_OnStart()strConn = "
下面是库中URLINDEX表:URL和Keywords字段分别添加了索引.
| URL 文本 (索引:有(无重复)) Title 文本 Description 文本 Summary 文本 Keywords 文本(索引:有(无重复)) |
doquery.asp
| <HTML><HEAD><TITLE>简单搜索引擎</TITLE></HEAD> <BODY BGCOLOR=#ffffff MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0> <FORM METHOD=post ACTION=doquery.asp?act=search> Query: <INPUT TYPE=Text NAME=QueryString><BR> <INPUT TYPE=Submit VALUE=Submit> </FORM> </CENTER> <% dim act act=request(act) if(act=search) then QueryString = Request.form( QueryString ) QueryWords = Split( QueryString ) strIndent = ' 如果搜索为空则返回 If QueryString = Then Response.Redirect( default.asp ) End If Session.timeout = 2 If IsObject(Session(sitesearch_conn)) Then Set conn = Session(sitesearch_conn) Else Set conn = Server.CreateObject(ADODB.Connection) conn.open driver={Microsoft Access Driver (*.mdb)};dbq= & Server.MapPath(database/SiteSearch.mdb),, Set Session(sitesearch_conn) = conn End If ' 查询语句 sql = SELECT * FROM [URLIndex] WHERE
'搜索Description字段 sql = sql & ( [Description] LIKE '% & QueryWords( 0 ) & %' ' First For i = LBound( QueryWords ) 1 to UBound( QueryWords ) If QueryWords( i ) <> and UCase( QueryWords(i) ) <> OR and UCase( QueryWords(i) ) <> AND Then If uCase( QueryWords( i-1 ) ) = OR Then sql = sql & OR [Description] LIKE '% & QueryWords( i ) & %' Else sql = sql & AND [Description] LIKE '% & QueryWords( i ) & %' End If End If Next ' 搜索Keywords字段 sql = sql & ) OR ( [Keywords] LIKE '% & QueryWords( 0 ) & %' For i = LBound( QueryWords ) 1 to UBound( QueryWords ) If QueryWords( i ) <> and UCase( QueryWords(i) ) <> OR and UCase( QueryWords(i) ) <> AND Then If uCase( QueryWords( i-1 ) ) = OR Then sql = sql & OR [Keywords] LIKE '% & QueryWords( i ) & %' Else sql = sql & AND [Keywords] LIKE '% & QueryWords( i ) & %' End If End If Next ' 搜索Title字段 sql = sql & ) OR ( [Title] LIKE '% & QueryWords( 0 ) & %' For i = LBound( QueryWords ) 1 to UBound( QueryWords ) If QueryWords( i ) <> and UCase( QueryWords(i) ) <> OR and UCase( QueryWords(i) ) <> AND Then If uCase( QueryWords( i-1 ) ) = OR Then sql = sql & OR [Title] LIKE '% & QueryWords( i ) & %' Else sql = sql & AND [Title] LIKE '% & QueryWords( i ) & %' End If End If Next ' 搜索Summary字段 sql = sql & ) OR ( [Summary] LIKE '% & QueryWords( 0 ) & %' For i = LBound( QueryWords ) 1 to UBound( QueryWords ) If QueryWords( i ) <> and UCase( QueryWords(i) ) <> OR and UCase( QueryWords(i) ) <> AND Then If uCase( QueryWords( i-1 ) ) = OR Then sql = sql & OR [Summary] LIKE '% & QueryWords( i ) & %' Else sql = sql & AND [Summary] LIKE '% & QueryWords( i ) & %' End If End If Next sql = sql & ) ' Set rs = Server.CreateObject(ADODB.Recordset) rs.Open sql, conn, 3, 3
Response.Write <BR><B> 你搜索的是: </B> & QueryString
Response.Write <BR><B> 搜索的关键字: </B> For i = LBound( QueryWords ) to UBound( QueryWords ) Response.Write <BR> & strIndent & i & : & QueryWords( i ) Next ' Print the SQL String Response.Write <BR><B> sql 语句 : </B> & sql ' Print the Results Response.Write <BR><B> 结果 : </B> <UL> On Error Resume Next rs.MoveFirst Do While Not rs.eof Response.Write <BR> & <A HREF='OpenPage.asp?IndexURL= & rs.Fields(URL).Value & '> & rs.Fields(Title) & </A> - Response.Write rs.Fields(Description) & <BR> Response.Write <FONT SIZE=2>URL: & rs.Fields(URL) & </FONT> Response.Write <HR SIZE=1 WIDTH=200 ALIGN=LEFT> rs.MoveNext Loop Response.Write </UL> end if %> </BODY> </HTML> |
分享:ASP技巧实例:关于对表单操作的程序以下为引用的内容: Inserting Form content into Database with ASP. <% ' -- Loader.asp -- ' -- version 1.5.2