´´½¨·þÎñÆ÷¶ËµÄASPËÑË÷×é¼þ£¨¶þ£© 2000-12-04 00:00:00¡¤
±àÒëÇàÆ»¹ûµçÄÔ¹¤×÷ÊÒ¡¤Yesky b>ShowSearchFrame ·½·¨
¡¡¡¡ShowSearchFrameÊÇΨһһ¸öÉùÃ÷ΪPublic µÄÖ÷·½·¨¡£Ëü²»½ÓÊÕ×Ô±äÁ¿£¬¶¯Ì¬Éú³ÉËÑË÷-ÊäÈëÓò¡¢µ¼º½ÌõºÍ±êÌâÁÐ±í¡£ÕâÊÇͨ¹ýµ÷ÓÃ4¸öÖ§³ÖÐÔPrivate ·½·¨ÊµÏֵġ£
¡¡¡¡ÔÚShowSearchFrame ·½·¨ÖÐÒªÉùÃ÷¶à¸ö±äÁ¿£¬ÊÇΪÁËÒýÓÃÎÒÃǵÄÖ§³ÖÐÔPrivate ·½·¨Ê±½øÐд«µÝ¡£ÔÚÓ¦ÓÃËüÃǵÄPrivate ·½·¨µÄÉÏÏÂÎÄÖнøÐнâÊÍ¡£
¡¡¡¡µ÷ÓõĵÚÒ»¸öPrivate ·½·¨ÊÇ SearchInputField º¯Êý¡£Õâ¸öº¯Êý·µ»ØÒ»¸ö×Ö·û´®£¬ÔÚÎÒÃÇÕâ¸öÀý×ÓÖУ¬×Ö·û´®ÓÉHTML±ê¼ÇºÍÎı¾Ìî³ä£¬ÒÔ²úÉúÒ»¸öÎı¾ÊäÈëÇøºÍËÑË÷°´Å¥¡£
¡¡¡¡ÎÒÃǽ«Õâ¸öHTML´úÂë´æ´¢ÔÚ×Ö·û´®±äÁ¿strHTMLÖУº
Public Function ShowSearchFrame() As String
"~~~~~ Local variables
Dim strHTML As String
"===== Search input field
strHTML = SearchInputField
End Function
SearchInputField º¯Êý
¡¡¡¡SearchInputField º¯Êý²»½ÓÊÕ×Ô±äÁ¿¡£µ«ÊÇËü¶¯Ì¬µØÉèÖÃÒ»¸öÓÉÒ³Ãæ·ÃÎÊÕß¾ö¶¨µÄ±äÁ¿¡£Ëü»¹ÉèÖÃÔ´ÎļþÃûºÍ»ÃæÃû£¬ÓëÔÚSearchFrameSet.htm ÎļþÖÐʹÓõÄFRAME ±ê¼ÇÃûÏàÆ¥Å䣬ÕâÊÇÓë¾ö¶¨ÎÒÃÇÕ¾µãµÄ»ÃæÌØÕ÷µÄSearchFrameSet.htm ÏàͬµÄÎļþ¡£
¡¡¡¡Ê×ÏÈ¿´¿´½«Òª·µ»ØµÄHTML´úÂ룺
£¼ FORM NAME="SearchForm" METHOD="GET" ACTION="SearchPage.asp" TARGET="SearchFrame" £¾
£¼ INPUT TYPE="TEXT" NAME="Src" MAXLENGTH="50" SIZE=15 VALUE="" £¾
£¼ INPUT TYPE=SUBMIT VALUE="Search" £¾
£¼ /FORM £¾
¡¡¡¡±íµ¥µÄNAME±ê¼ÇÉèÖÃΪ SearchForm¡£ACTION±ê¼ÇÉèÖÃΪSearchPage.asp, ÕâÊÇmstrSearchFrameURL±äÁ¿µÄĬÈÏÖµ¡£
¡¡¡¡ÈκδÓÕâ¸ö±íµ¥µÄÊäÈëÓòÖÐÊäÈëµÄÎı¾¶¼½«´«Ë͵½Ô´Îļþ(SearchPage.asp )¡£ÎÒÃǵÄÇé¿öÊÇ£¬Õâ¸öÔ´Îļþ×ÔÒýÓÃÍêÈ«ÏàͬµÄasp Îļþ£¬ÆäÖÐÈÝÄÉ×Űüº¬SearchInputField ·½·¨µÄ×é¼þ¡£ÊµÖÊÉÏ£¬Õâ¸ö±íµ¥µ÷ÓÃÁËËü×Ô¼º£¬ÕâÊÇÉèÖÃĬÈϵĽṹ¡£
¡¡¡¡ÔÚä¯ÀÀÆ÷ÖУ¬Õâ¸öHTML´úÂëÉú³ÉÏÂÃæµÄÎı¾ÊäÈë¿Ø¼þ£º

ÏÖÔÚµ±·ÃÎÊÕßÔÚÊäÈëÓòÖмüÈëÎı¾²¢ÇÒµã»÷Search °´Å¥Ê±£¬Îı¾¾Í»á±»¸½ÔÚSearchPage.asp URL½áβ´¦¡£ÕâÊÇÒòΪFORM±ê¼ÇÄÚµÄMETHOD±»ÉèÖÃΪGET£¬¶ø²»ÊÇPOST¡£
¡¡¡¡POSTµ±È»ÊÇÕâÁ½ÖÖ·½·¨ÖнϺõÄÒ»¸ö£¬ÒòΪËüÔÚHTTP Í·ÎļþÖÐÒþ²ØÁËÊäÈëµÄÎı¾²¢ÇÒÔÊÐí¸ü³¤µÄÖµ¡£µ«ÊÇÎÒÃǵÄÀý×ÓÖУ¬ÊÇÒ»¸ö¶ÌµÄÎı¾Öµ£¬Ó T Ò²ÄÜÔÊÐíͨ¹ý½«Ò»¸ö²éѯ×Ö·û´®¸½ÔÚÈκÎURLµÄ½áβÀ´µ÷Ó÷½·¨¡£Ëü»¹ÓÐÒ»¸öºÃ´¦¾ÍÊÇÔÊÐíä¯ÀÀÆ÷»º´æ²éѯ½á¹û£¬ÒòΪÔÚ½øÐÐGET ʱ£¬»º´æÔÚÍêÕûµÄURLÉϹ¤×÷¡£ÕâÑù¾Í¿ÉÒÔ¿ìËÙ·ÃÎÊÿ¸öËÑË÷Ò³Ãæ£¬²¢ÇÒÔÚºóÀ´ÀëÏßä¯ÀÀ¡£
¡¡¡¡µ±·ÃÎÊÕßÊäÈë"component" ×÷ΪËûÃǵÄÎı¾ÊäÈëʱ£¬ÎÒÃÇµÄ±íµ¥·¢ËÍÏÂÃæµÄURLºÍ²éѯ×Ö·û´®£º SearchPage.asp?Src=component
¡¡¡¡Ä㻹¿ÉÒÔ´ÓÈκÎÕ¾µã½«ÕâÒ»ÉùÃ÷×÷Ϊһ¸öÁ¬½Ó°üº¬ÔÚÒ»¸öHREF±ê¼ÇÄÚ--SearchPage.asp Îļþ²»ÐèFORM±ê¼Ç¾ÍÄܹ¤×÷¡£
¡¡¡¡ÒÔÏÂÊÇÍêÕûµÄSearchInputField º¯Êý£¬ËüÉú³ÉÒÔÉϵÄHTML ´úÂëºÍä¯ÀÀÆ÷ÊäÈë¿ØÖÆ£º
Private Function SearchInputField() As String
Dim strHTML As String
"~~~~ Search input form start
strHTML = strHTML & "£¼ FORM NAME=""SearchForm"" METHOD=""GET"" ACTION=""" _
& mstrSearchFrameURL & """ TARGET=""" & mstrSearchFrameName & """ £¾"
"~~~~ Search input field
strHTML = strHTML & "£¼ INPUT TYPE=""TEXT"" NAME=""Src"" MAXLENGTH=""50""" _
& "SIZE=15 VALUE=""" & mobjRequest.QueryString("Src") & """ £¾"
"~~~~ Search input button
strHTML = strHTML & "£¼ INPUT TYPE=SUBMIT VALUE=""Search"" £¾"
"~~~~ Search input form end
strHTML = strHTML & "£¼ /FORM £¾"
SearchInputField = strHTML
End Function
¡¡¡¡Çë×¢ÒâÎÒÃÇÊÇÈçºÎÔÚHTML´úÂëµÄÁ¬½ÓƬ¶ÎÄÚÁ¬½ÓÊôÐÔ³ÌÐò±äÁ¿À´Ê¹ÓÃËüÃǵġ£»¹Òª×¢ÒâHTML±ê¼ÇÄÚÒªÇóµÄµ¥ÒýºÅ(") ÊÇÈçºÎ±»Ë«ÒýºÅ("") ÒýÓõģ¬ÕâÑù¾Í¿ÉÒÔ±ÜÃâVB°ÑËü×÷Ϊһ¸ö×Ö·û´®³£Á¿µÄ¿ªÍ·»ò½áβ¶ø²úÉú´íÎó¡£
¡¡¡¡»¹ÓÐÒ»¸öÐèҪעÒâµÄÊÇ£¬ÔÚINPUT±ê¼ÇÄÚ±»ÉèÖÃΪVALUEµÄ±äÁ¿¡£Ëü´Ó²éѯ×Ö·û´®mobjRequest.QueryString("Src") Öеõ½ËüµÄÖµ£¬´ÏÃ÷µÄ¶ÁÕß»áÈϳöËü¾ÍÊDZê¼Ç±¾ÉíµÄÃû×Ö£º
VALUE=""" & mobjRequest.QueryString("Src")
¡¡¡¡Õâ¸ö×ÔÒýÓòéѯ×Ö·û´®½«ÔÚËüµÄÎı¾ÓòÄÚÏÔʾ·¢ËÍʱÔÚÓòÖмüÈëµÄÈκÎÎı¾¡£ÓÉÓÚÔÚÎı¾ÊäÈëÓòÖмüÈë"component" ½«°Ñ?Src=component¸½ÔÚURLµÄ½á⣬INPUT ±ê¼ÇµÄÖµ½«ÔÚÊäÈëÎı¾¿òÖÐÏÔʾSrcµÄÖµ¡£
¡¡¡¡¼ÙÉèÔÚÎı¾ÊäÈëÓòÄÚ¼üÈëµÄÊÇ"component" £¬Ôò·¢Ë͵ÄURLÊÇ?/P £¾
SearchPage.asp?Src=component
¡¡¡¡¶øÏÂÃæµÄVB´úÂ룼 INPUT TYPE=""TEXT"" NAME=""Src"" VALUE=""" & _
mobjRequest.QueryString("Src") & """ £¾
¡¡¡¡½«Éú³É
£¼ INPUT TYPE="TEXT" NAME="Src" VALUE="component" £¾
¡¡¡¡¶øÇÒ½«ÏÔʾ£º

ÏÖÔÚÓû§¿ÉÒÔÊäÈëÒ»¸ö²éѯ×Ö·û´®£¬²¢½«Æä·¢Ë͵½ÎÒÃǵÄ×é¼þ¿´¿´²éѯ×Ö·û´®Íê³ÉÒ»´ÎËÑË÷¡£
»Øµ½ShowSearchFrame ·½·¨µÚ¶þ²¿·Ö
¡¡¡¡»Øµ½ÎÒÃǵÄShowSearchFrame ·½·¨£¬ËüÊÇÔÚSearchInputField ·½·¨Öб»µ÷Óõģ¬ÎÒÃǽ«·µ»ØµÄHTML´úÂë´æ´¢ÔÚstrHTML±äÁ¿ÖС£µ«ÊÇÔÚÎÒÃǽ«Ëü·¢Ë͸øä¯ÀÀÆ÷֮ǰ£¬±ØÐëҪȷ¶¨·ÃÎÊÕßÊÇ·ñÒѾÊäÈëÁËÒ»¸öËÑË÷²éѯÎı¾ÈÃÎÒÃÇÔÚËÑË÷Êý¾Ý¿â¹ý³ÌÖÐʹÓá£
¡¡¡¡ÕâÊÇͨ¹ýУÑéSrc ²éѯ×Ö·û´®±äÁ¿ÊÇ·ñΪ¿ÕʵÏֵġ£Èç¹ûΪ¿Õ£¬¾Í֪ͨ·ÃÎÊÕßÏÖÔÚËûÃÇ¿ÉÒÔÊäÈë²éѯ×Ö·û´®ÁË¡£µ±·ÃÎÊÕß½øÈëÒ»¸öËÑË÷Õ¾µã£¬Á¬½Óµ½Ò»¸öûÓÐSrc ²éѯ×Ö·û´®µÄÍøÒ³Ê±Í¨³£¾Í»á¿´µ½ÕâÑùµÄÌáʾ¡£
¡¡¡¡ShowSearchFrame µ÷Óà SearchInputField ·½·¨²¢½«HTMLÊäÈë¿ØÖÆ´úÂë´æ´¢µ½strHTML ±äÁ¿ºó£¬ÎÒÃÇÒª²é¿´Ò»ÏÂÕâÊDz»ÊÇÒ»¸öÐÂÓû§»ò²éѯÇëÇó£º
"===== Search input field
strHTML = SearchInputField
If mobjRequest.QueryString("Src") = "" Then
"~~~~~ No query was entered
strHTML = strHTML & "Enter a query"
Else
"[Search code here]
End If
¡¡¡¡Èç¹ûûÓÐÃûΪSrcµÄ²éѯ×Ö·û´®£¬Á¬½ÓÀ´×ÔÎÒÃǵÄ×é¼þÒÔÍ⣬ÎÒÃÇ¿ÉÒÔ½«Ò»¸ö½éÉÜÐÔµÄÐÅÏ¢¸½ÔÚstrHTML ´úÂëÉÏ£¨´ÓÕâ¸ö×é¼þ·¢ËÍÒ»¸ö¿Õ²éѯҲ»á²úÉúͬÑùЧ¹û£©£º
strHTML = strHTML & "Enter a query"
¡¡¡¡ÏÖÔÚÎÒÃǵĵÚÒ»¸öHTML´úÂëÒѾÍêÕûÁË£¬ÎÒÃǽ«Ëü·¢Ë͸ø IISÔÚ·ÃÎÊÕßµÄä¯ÀÀÆ÷ÉÏÏÔʾ£º
Else
"[Search code here]
End If
"~~~~~ Send html code to IIS for delivery to visitors browse r
mobjResponse.Write (strHTML )
²úÉúÏÂÃæµÄÏÔʾ£º

¡¡¡¡·ÃÎÊÕßÊäÈëÁËÒª×é¼þËÑË÷µÄÎı¾ÒÔºó£¬ÒÔÉϵÄÌõ¼þIf Óï¾ä¾Í»á·¢ÏÖVBmobjRequest.QueryString("Src") ±äÁ¿²»Îª¿Õ£¬·ÖÖ§¿ØÖÆÂß¼¾Í»áÁ÷ÏòÑ¡ÔñµÄElse ²¿·Ö¡£È»ºóÁ¬½Óµ½Êý¾Ý¿â²¢ÔÚÊý¾Ý¿âÖÐËÑË÷Æ¥ÅäµÄTitle ºÍ Text Óò¡£
¡¡¡¡ÒòΪÎÒÃÇÒªËÑË÷Ò»¸öAccess Memo ÐÍÓò£¬»òÕß˵ÊÇSQL ·þÎñÆ÷Îı¾ÐÍÓò£¬ÎÒÃDz»ÔÚSQLÉùÃ÷ÄÚʹÓÃLIKE Óï¾ä¡£Ïà·´£¬ÎÒÃÇͨ¹ýÒÔϵÄSQL×Ö·û´®·µ»ØÒ»¸ö¼Ç¼¼¯£º
SELECT Title, Text, URL FROM SearchTable
¡¡¡¡¿ÉÒÔÓÃÒ»¸öÕʺÅȺID¡¢Ò»¸öµäÐÍ·¶Î§»òÕßÔÚ¹ýÂ˱íÖÐÓÐÏà¹ØÄÚÈݵÄÈκÎÀà±ðÀ´ÏÞÖÆ³õʼ²éѯ¡£
¡¡¡¡ÓÉÓÚSQLÉùÃ÷»Ö¸´Ã¿¸ö¼Ç¼£¬ÎÒÃÇ¾ÍºÜ¿ìµØËÑË÷TitleºÍ Text ÓòѰÕÒÓëÎÒÃǵķÃÎÊÕßËùÌá½»µÄÎı¾²éѯ×Ö·û´®ÏàÆ¥ÅäµÄÄÚÈÝ¡£Õâ¸ö×Ö·û´®µÄËÑË÷ÓÃVB InStrÉùÃ÷À´ÊµÏÖ¡£Èç¹ûÕÒµ½ÁËÆ¥Å䣬²¢ÇÒÎÒÃÇÔÚµ¼º½·Ö½çÏߵķ¶Î§Ö®ÄÚ£¬¾Í½«±êÌâºÍURL·ÅÖÃÔÚ¶¯Ì¬×Ö·û´®ÊýÁÐÀï¡£
¡¡¡¡²é¿´µ¼º½·Ö½çÏßÏÞÖÆÊµÖÊÉÏÊǴӼǼµÄ×Ó¼¯ÖÐÑ¡ÔñÒ»¸ö±êÌâºÍURÁбíL¡£È»ºó£¬Óû§¾Í¿ÉÒÔÓÃ"next"À´·ÃÎʱêÌâµÄÏÂÒ»¸öÁбí»òÓÃ"back" À´·ÃÎÊÒѾ¿´¹ýµÄÁбíÖеÄǰһ¸ö¡£Êµ¼ÊÉϾÍÊÇÔÚÏòä¯ÀÀÆ÷½øÐÐÏÔʾʱ£¬ÏÞÖÆ´ÓÊý¾Ý¿âËÑË÷·µ»ØµÄÎı¾ÊýÁ¿¡£
¡¡¡¡ÏÖÔÚÎÒÃǵÄÊý¾Ý¿âÖгäÂúÁË´ÓSQLÉùÃ÷ÖÐÌáÈ¡³öÀ´µÄ¼Ç¼£¨Èç¹ûÄãÔÚSQL ÉùÃ÷ÖÐʹÓÃÁËWHERE ¹ýÂËÆ÷µÄ»°¾Í¿ÉÄÜÊÇÒ»¸öÓÐÏÞÊýÁ¿µÄ¼Ç¼£©¡£È»ºóÓÃInStr ÉùÃ÷ÔÚÿһ¸ö·µ»Ø¼Ç¼ÖÐËÑË÷Ò»¸öÆ¥Åä¡£Õâ¾ÍÔÚSQLÉùÃ÷·µ»ØµÄÊý¾Ý¿â¼Ç¼Öд´½¨ÁËÒ»¸öÐéÄâ×Ó¼¯¡£Èç¹ûÕâ¸ö×Ó¼¯±ÈÎÒÃǽ«ÒªÏÔʾµÄ´óµÄ»°£¬¾Í²»½«Ëü´æ´¢ÔÚVB±äÁ¿ÖС£Ïà·´ÎÒÃÇÑ¡ÔñÎÒÃÇ×Ó¼¯µÄÁíÒ»¸ö×Ó¼¯ÔÚweb Ò³ÃæÉÏÏÔʾ¡£ÎÒÃǽ«Êý¾Ý¿âÓòµÄ±äÁ¿·ÖÅäÏÞÖÆÔÚ×îºóµÄ×Ó¼¯ÖУ¬´Ó¶ø½Úʡϵͳ×ÊÔ´²¢Ìá¸ßÔËÐÐËÙ¶È¡£

¡¡¡¡ÎªÁËÊÕ¼¯ÓëËÑË÷²éѯÏàÆ¥ÅäµÄweb Õ¾µã±êÌâºÍURL£¬ÐèÒª´´½¨Á½¸ö×Ö·û´®ÊýÁС£Ò»¸ö±£´æ±êÌ⣬ÁíÒ»¸ö±£´æURL¡£ÒòΪÎÒÃDz»ÖªµÀ×Ö·û´®ÊýÁÐ×îÖÕ½«±£´æ¶àÉÙÌõÄ¿£¬ËùÒÔ½«ËüÃÇÉèÖÃΪ¶¯Ì¬ÊýÁУ¬Ã¿´ÎÔö¼ÓÒ»¸öÐÂÌõĿʱµ÷ÕûËüµÄ´óС¡£
ÎÒÃÇ»¹ÔÚ²»Ö¹Ò»¸ö·½·¨ÖÐÐèÒªÕâЩÊýÁС£ÎÒÃÇÔÚ³õʼµÄ°ü×°·½·¨ShowSearchFrame Öд´½¨ËüÃÇ£¬¶ø²»Êǽ«ËüÃÇÉèÖÃΪȫ¾Ö±äÁ¿¡£È»ºó¾Í½«Æä×÷Ϊ×Ô±äÁ¿Ïòÿ¸öÐèÒªµÄ·½·¨´«µÝ¡£ÎÒÃÇ»¹ÐèÒª´´½¨ÁíÍâÁ½¸öÕûÐαäÁ¿£¬Óë×Ö·û´®±äÁ¿Ò»Æð´«µÝ¡£
Public Function ShowSearchFrame() As String
"~~~~~ Local variables
Dim strHTML As String
Dim astrTitleArray() As String
Dim astrURLarray() As String
Dim intRecordsDisplayed As Integer
Dim intRecordsMatched As Integer
¡¡¡¡ÉùÃ÷ÁËÁ½¸ö¶¯Ì¬×Ö·û´®±äÁ¿ºÍÁ½¸öÕûÐαäÁ¿Ö®ºó£¬¾Í¿ÉÒÔ½«ËüÃÇ´«µÝ¸øµÚ¶þ¸ö·½·¨¡£GetRecords º¯ÊýÓÃÊý¾Ý¿âÖеıêÌâºÍURLµÄÖµÀ´Ìî³ä×Ö·û´®ÊýÁС£ÓÃÊýÁÐÖÐÌõÄ¿µÄ¸öÊýÉèÖÃintRecordsDisplayed ±äÁ¿¡£intRecordsMatched ±äÁ¿Öб£´æÓë·ÃÎÊÕß²éѯ×Ö·û´®ÏàÆ¥ÅäµÄ¼Ç¼Êý¡£ÎÒÃÇʹmintRecordsSearched ³ÉΪһ¸öÊôÐÔ³ÌÐò£¬¿É´ÓASPÖ÷»úÎļþÖжÁÈ¡¡£¾¡¹ÜÎÒÃDz»ÔÚÕâ¸ö×é¼þÖÐʹÓÃËü£¬Óû§¿ÉÄÜÏëÖªµÀ¹²ËÑË÷µ½¶àÉÙÌõ¼Ç¼¡£
¡¡¡¡ÕâÊÇShowSearchFrame ·½·¨Öеķ½·¨µ÷Ó᣼Çס£¬GetRecordsº¯ÊýÊÇÓÐÌõ¼þµØ±»µ÷Óõ쬵±ÓÐÀ´×ÔÓû§µÄËÑË÷²éѯ£¬²¢ÇÒÔÚSearchInputField·½·¨Ö®ºó:
If mobjRequest.QueryString("Src") = "" Then
"~~~~~ No query was entered
strHTML = strHTML & "Enter a query"
Else
"[Search code here]
mintRecordsSearched = GetRecords(astrTitleArray(),astrURLarray(), _
intRecordsDisplayed, intRecordsMatched)
End If
GetRecords º¯Êý
¡¡¡¡ÏÖÔÚÎÒÈÏΪ¶ÔÉùÃ÷ºÍ´«µÝ·½·¨±äÁ¿µÄÌØÊâ·½·¨µÄϸ½ÚÒѾ½éÉܵù»¶àÁË¡£¶ÔÓÚGetRecords·½·¨µÄ½âÊͽ«Ö÷ÒªÊÇ´Ë·½·¨µÄÒ»°ã¹¦ÄÜ·½Ãæ¡£
¡¡¡¡Èç¹ûÄãʹÓõÄÊÇVB5µÄ»°£¬¾ÍÐèÒª°²×°Service Pack 3 ÒÔ»ñµÃ¶ÔADO µÄÒýÓÃÀ´Ê¹ÕâЩ´úÂ빤×÷¡£
¡¡¡¡Ê×ÏÈҪעÒâÔÚÉùÃ÷Ö®ºó£¬´úÂëÓÐÒ»¸ö´íÎó¿ØÖÆÉùÃ÷¡£
¡¡Private Function GetRecords(astrTitleArray() As String, astrURLarray() As _
String, intRecordsDisplayed As Integer, intRecordsMatched As _
Integer) As Integer
"~~~~~ LOCAL VARIABLES
Dim intCount As Integer
Dim intRecordsSearched As Integer
Dim strHTML As String
Dim strSearchHold As String
Dim strTitleHold As String
Dim strTextHold As String
Dim strURLhold As String
Dim recSearch As New ADODB.Recordset
Dim objCmd As New ADODB.Command
Dim objConn As New ADODB.Connection
Dim strSQL As String
On Error GoTo ErrorCode
¡¡¡¡Èç¹ûÔÚʹÓÃÊý¾Ý¿âʱ·¢ÉúÁË´íÎ󣬿ØÖƾÍÔÚº¯Êý½áβ´¦´«µÝÒ»¸öErrorCode ±êÖ¾¡£
¡¡¡¡ÏÂÃæµÄ6¸öÉùÃ÷ÓÃData Source Name£¨Êý¾ÝÔ´Ãû£©´ò¿ªµ½Êý¾Ý¿âµÄÁ¬½Ó¡¢Æô¶¯Ò»¸ö´¦Àí¡¢ÉèÖÃSQL×Ö·û´®¡¢½«SQL ×Ö·û´®·ÖÅ䏸ADOÃüÁî¶ÔÏ󡢸æËßÃüÁî¶ÔÏóµÈ´ýÒ»¸öSQL×Ö·û´®¡¢ÉèÖõ½ÃüÁî¶ÔÏóµÄÁ¬½Ó¡£
¡¡¡¡ÔÚÕâÀïÎÒʹÓõĴ¦ÀíÊÇΪÁËʾ·¶£¬¶øÇÒÒòΪËüÔÚתÈëÃüÁî֮ǰÓöþ½øÖÆ´æ´¢´úÂ룬ÕâÑù¿ÉÒÔÌá¸ßÊý¾Ý¿â´¦ÀíµÄËÙ¶È£º
"~~~~~ Open the connection with a data source name
objConn.Open "SearchExampleDSN"
"~~~~~ Begin the transaction (only for speed in this case)
objConn.BeginTrans
"~~~~~ Store the SQL command in a string
strSQL = "SELECT Title, Text, URL FROM SearchTable"
"~~~~~ Set the Command object to the SQL string
objCmd.CommandText = strSQL
"~~~~~ indicate that the command is a SQL string (for speed)
objCmd.CommandType = adCmdText
"~~~~~ Set the Connection object to the Command object
Set objCmd.ActiveConnection = objConn
¡¡¡¡Ò»µ©ÎÒÃÇÓÃÃüÁî¶ÔÏóµÃµ½ÁËËùÐèÒªµÄ´ò¿ª¼Ç¼¼¯µÄÁ¬½Ó£¬ÎÒÃǾÍÉèÖãº
"~~~~~Open Recordset with the above Command settings
recSearch.Open objCmd
¡¡¡¡ÔÚ¼ÌÐø½øÐÐËÑË÷֮ǰ£¬ÐèÒªÑéÖ¤ÎÒÃÇȷʵÏòËÑË÷·µ»ØÁËһЩ¼Ç¼¡£Èç¹ûûÓзµ»Ø¼Ç¼£¬¼Ç¼¼¯¾Í¼ÈÊÇÔÚ¿ªÍ·Ò²ÊÇÔÚ½áβ£º
If recSearch.EOF And recSearch.BOF Then
"~~~~No records were returned by the SQL
GetRecords = 0
¡¡¡¡µ«ÊÇ£¬Èç¹ûSQLÉùÃ÷·µ»ØÁËһЩ¼Ç¼£¬¾ÍÐèÒªÉèÖÃһЩ±äÁ¿È·±£¼Ç¼¼¯´¦ÔÚ¿ªÍ·£º
Else
"~~~~Initialize Procedural Variables
intRecordsMatched = 0
intRecordsDisplayed = 0
intRecordsSearched = 0
mintSearchStart = CInt(mobjRequest.QueryString("Start"))
If mintSearchStart = 0 Then mintSearchStart = 1
recSearch.MoveFirst
¡¡¡¡Ëæ×Ų»Í¬µÄÕûÊý¼ÆÊýÆ÷µÄÔö¼Ó£¬ÎÒÃÇÔڼǼ¼¯ÖÐÑ»·£¬²¢½«Êý¾Ý¿âÖеıêÌâ¡¢Îı¾¡¢URLÊý¾Ý´æ´¢ÔÚ±¾µØ×Ö·û´®±äÁ¿ÖУº
"~~~~Loop through the recordset
Do While Not recSearch.EOF
"Increment the total number of records to be searched
intRecordsSearched = intRecordsSearched + 1
"~~~~~ Store the database field data in temparary strings
strTitleHold = recSearch.Fields("Title")
strTextHold = recSearch.Fields("Text")
strURLhold = recSearch.Fields("URL")
¡¡¡¡Á¬½ÓÎı¾ºÍ±êÌâ×Ö·û´®ºó£¬´ÓÍ·ÖÁβËÑË÷×Ö·û´®£¬Ê×ÏȽ«×Ö·û´®±ä³É´óд×Öĸ£¬È»ºó°ÑÎÒÃǵIJéѯ×Ö·û´®Æ¬¶ÎÒ²±ä³É´óд×Öĸ½øÐÐËÑË÷£º
"~~~~Concatenate the Title and URL into a String to Search
strSearchHold = strTitleHold & strTextHold
"~~~~~ Determine if the database record meets the visitors query
If InStr(UCase(strSearchHold), _
UCase(mobjRequest.QueryString("Src"))) Then
"~~~~Increment the number of records that match the visitor"s query
intRecordsMatched = intRecordsMatched + 1
¡¡¡¡Èç¹ûÎÒÃǵļǼÊý¾Ý°üº¬Á˲éѯ×Ö·û´®£¬¾Í±ØÐëҪȷ¶¨ËüÊÇ·ñÔÚµ¼º½Áбí½çÏÞ·¶Î§ÄÚ¡£ÕâÊÇÒ»µã¼¼ÇÉ£¬
"Determine if records are within Start/Stop display range
If intRecordsMatched £¾= mintSearchStart And _
intRecordsDisplayed £¼ mintMaxSearchReturn Then
¡¡¡¡Õâ¸öÉùÃ÷ʹÓÃÁËmintSearchStart ±äÁ¿£¬µ¼º½Ìõ°ÑËü×÷Ϊһ¸ö²éѯ×Ö·û´®À´»ñÈ¡£¬È»ºó²é¿´Ò»ÏÂÁбíÒ³ÊÇ·ñ´ïµ½ÁËËüµÄ×î´óÈÝÁ¿£¬¶øÕâ¸ö×î´óÈÝÁ¿ÊÇÓÉmintMaxSearchReturn±äÁ¿¾ö¶¨µÄ¡£Èç¹ûͨ¹ýÁ˲âÊÔ£¬¾Í½«¿ØÖÆ´«µÝ¸ø¶¯Ì¬ÊýÁÐÉùÃ÷¡£
¡¡¡¡Ã¿´Î´«µÝ¶¯Ì¬ÊýÁб£´æÄÚÈÝÖ®ºó£¬µ÷ÕûÆä´óС¡£
"~~~~Increment number of records to display
intRecordsDisplayed = intRecordsDisplayed + 1
"~~~~Store Title in title array
ReDim Preserve astrTitleArray(intRecordsDisplayed)
astrTitleArray(intRecordsDisplayed) = strTitleHold
"~~~~Store URL in URL array
Redim Preserve astrURLArray(intRecordsDisplayed)
astrURLArray(intRecordsDisplayed) = strURLHold
End If
End If
ÏÂÃæÎÒÃÇÒÆµ½ÏÂÒ»¸ö¼Ç¼£¬ÖØÐ¿ªÊ¼£º
"~~~~Move to next record
recSearch.MoveNext
Loop
End If
¡¡¡¡ÒòΪÕâÁ½¸ö×Ö·û´®ÊýÁÐÊÇÓÉÒýÓô«µÝµÄ£¨VBµÄĬÈÏ״̬£©£¬ÔÚÕâ¸ö·½·¨ÖÐËù×öµÄÈκÎÐ޸ͼ»á±»±£´æ¡£ÔÚ½áÊøÖ®Ç°£¬ÎÒÃÇÌá½»´¦Àí£¬¹Ø±ÕÊý¾Ý¿âÁ¬½Ó£¬½øÐÐһЩÕûÀí¹¤×÷£º
"------ Commit & Close
objConn.CommitTrans
objConn.Close
Set research = Nothing
Set objConn = Nothing
Set objCmd = Nothing
¡¡¡¡×îºóÒªÔö¼ÓÒ»¸ö´íÎó¾ä±ú£¬ÉèÖûص½·½·¨¿ªÍ·µÄ·½·¨£º
Exit Function
ErrorCode:
objConn.RollbackTrans
strHTML = "Error in Accessing Database File£¼ BR £¾£¼ BR £¾"
strHTML = strHTML & "Search::GetRecords£¼ BR £¾"
strHTML = strHTML & Err.Description & "£¼ BR £¾"
strHTML = strHTML & strSQL
"~~~~~ Write the error message to the web page
mobjResponse.Write (strHTML)
"~~~~~ Send back a negative one to indicate that there was an error
GetRecords = -1
End Function
¡¡¡¡ÔÚÕâÀïÎÒÃǽ«Êý¾Ý¿â´úÂ뿪ʼʱµÄ´¦Àí·´×ª¹ýÀ´£¬Ïòä¯ÀÀÆ÷дһ¸öHTML´íÎóÐÅÏ¢£¬È»ºó·µ»ØÒ»¸ö-1£¬×÷Ϊһ¸ö´íÎó´úÂë֪ͨµ÷Óõķ½·¨ÓдíÎó·¢Éú¡£
»Øµ½ShowSearchFrame ·½·¨µÚÈý²¿·Ö
¡¡¡¡»Øµ½ÎÒÃǵĵ÷Ó÷½·¨£¬²é¿´Ò»ÏÂÈç¹û·µ»ØÁË-1£¬È»ºóÍ˳öº¯Êý£¬Èç¹ûÊÇÕâÖÖÇé¿ö£¬-1¾Í±íÃ÷Ò»¸ö Êý¾Ý¿â´íÎó¡£²»È»µÄ»°£¬¾Íתµ½ÆäËü·½·¨¡£
Else
"[Search code here]
intRecordsSearched = GetRecords(strTitleArray(), strURLarray(), _
intRecordsDisplayed, intRecordsMatched)
"~~~~Exit of a database error occurred
If mintRecordsSearched = -1 Then Exit Function
End If
¡¡¡¡ÏÖÔÚÈ·¶¨ÖÁÉÙ·µ»ØÁËÒ»¸ö¼Ç¼֮ºó£¬¾Í¿ÉÒÔ´´½¨µ¼º½ÌõÁË£º
"~~~~Exit of a database error occurred
If intRecordsSearched = -1 Then Exit Function
"===== NARVIGATION BAR
If Not intRecordsDisplayed = 0 Then
strHTML = strHTML & NavigationBar(intRecordsMatched, _
intRecordsDisplayed) & "£¼ BR £¾£¼ BR £¾"
End If
End If
¡¡¡¡ÕâÀïÎÒÃǵ÷ÓÃÁËNavigationBar·½·¨£¬¸Ã·½·¨ÓÐÁ½¸ö×Ô±äÁ¿£¬±£´æÓëËÑË÷²éѯ×Ö·û´®ÏàÆ¥ÅäµÄ¼Ç¼ÊýºÍ±êÌâ¡¢URLÊýÁÐÖеÄÌõÄ¿Êý¡£NavigationBar ·½·¨·µ»ØÒ»¸ö×Ö·û´®£¬ÆäÖÐÊÇÔÚä¯ÀÀÆ÷ÉÏÏÔʾµ¼º½ÌõµÄHTML´úÂë¡£
NavigationBar ·½·¨
¡¡¡¡ÓÃÕâ¸ö·½·¨Éú³É×é³Éµ¼º½ÌõµÄÈý¸ö¶ÀÁ¢²¿·Ö¡£

¡¡¡¡NavigationBar ·½·¨ÓÐÈý¸ö²¿·Ö£¬Ã¿¸öÓÃÀ´Éú³ÉÉÏͼµÄÒ»²¿·Ö¡£Ëü½ÓÊÕÆ¥ÅäµÄ¼Ç¼Êý¼ÓÉÏÏÔʾµÄ¼Ç¼Êý×÷Ϊ×Ô±äÁ¿£º
Private Function NavigationBar(intRecordsMatched As Integer, _
intRecordsDisplayed As Integer)
Dim strHTML As String
¡¡¡¡back°´Å¥ÓÃÀ´»Øµ½ÌõÄ¿ÖеÄÉÏÒ»¸öÁÐ±í¡£Ëü·¢ËÍÒ»¸ö²éѯ×Ö·û´®(Start) £¬ÆäÖд洢×ÅÉÏÒ»¸öÁбíµÄµÚÒ»Ìõ£º
"~~~~Navigation Back
If mintSearchStart £¾ 1 Then
strHTML = strHTML & "£¼ A HREF=""" & mstrSearchFrameURL & "?Src=" & _
mobjServer.URLEncode(mobjRequest.QueryString("Src")) & _
"&Start=" & (mintSearchStart - (mintMaxSearchReturn)) & _
""" £¾back£¼ /A £¾ "
End If
¡¡¡¡×¢ÒâÒª±»·¢ËÍ»Ø×é¼þ°üº¬ÔÚÎı¾ÓòÖеÄËÑË÷²éѯ×Ö·û´®±àÂëΪ£º
Server.URLEncode(mobjRequest.QueryString("Src"))
¡¡¡¡Èç¹û²»Ê¹ÓÃURLEncode £¬ä¯ÀÀÆ÷¾Í²»ÄÜÏÔʾ»ò·¢ËÍÓÐÒ»¶¨×Ö·ûµÄ²éѯ×Ö·û´®¡£
¡¡¡¡È»ºóÐèÒª¼ÆËãÁбíÖеÄÌõÄ¿ÊýºÍÕÒµ½Á˶àÉÙÌõÄ¿£º
"~~~~~Naviagation numbers
strHTML = strHTML & " " & CStr(mintSearchStart) & "-" & _
mintSearchStart + (intRecordsDisplayed - 1) & " of " & _
CStr(intRecordsMatched) & " "
¡¡¡¡next °´Å¥Óë back°´Å¥¹¤×÷·½·¨Ïàͬµ«·½ÏòÏà·´£º
"~~~~Navigation Next
If mintSearchStart + (intRecordsDisplayed - 1) £¼ intRecordsMatched Then
strHTML = strHTML & " £¼ A HREF=""" & mstrSearchFrameURL & "?Src=" & _
mobjServer.URLEncode(mobjRequest.QueryString("Src")) & _
"&Start=" & (mintSearchStart + intRecordsDisplayed) & _
""" £¾next£¼ /A £¾"
End If
¡¡¡¡×îºó½«×Ö·û´®×Ô±äÁ¿·µ»Øµ½µ÷ÓôúÂëÖУº
"~~~~Send Back the composed HTML code
NavigationBar = strHTML
End Function
»Øµ½ShowSearchFrame ·½·¨µÚËIJ¿·Ö
¡¡¡¡×îºóÎÒÃÇÒªÏÔʾÓë²éѯ×Ö·û´®ÏàÆ¥ÅäµÄURLµÄÁÐ±í¡£Õâ¾ÍÐèÒªµ÷ÓÃÎÒÃǵĵÚËĸö˽Ó÷½·¨ListRecords :
"===== Narvigation bar
If Not intRecordsDisplayed = 0 Then
strHTML = strHTML & NavigationBar(intRecordsMatched, _
intRecordsDisplayed) & "£¼ BR £¾£¼ BR £¾"
End If
"===== URL Title list
strHTML = strHTML & ListRecords(astrTitleArray(), astrURLarray(), _
intRecordsDisplayed)
End If
ListRecords ·½·¨
¡¡¡¡±¾·½·¨½ÓÊÜÁ½¸ö×Ö·û´®ÊýÁУ¬ÒÔ¼°ËüÃDZ£´æµÄÌõÄ¿Êý×÷Ϊ×Ô±äÁ¿£º
Private Function ListRecords(astrTitleArray() As String, _
astrURLArray() As String, _
intRecordsDisplayed As Integer)
Dim strHTML As String
Dim intCount As Integer
¡¡¡¡Ê×ÏÈÒªÑéÖ¤´æÔÚ¿ÉÒÔÁгöµÄÌõÄ¿£¬ÔÚ¸ñʽ»¯ÎÒÃǵÄHTML´úÂëµÄʱºòÔÚ×Ö·û´®ÊýÁÐÖÐÑ»·¡£ÔÚÕâÖÖÇé¿öÏ£¬ÎÒÃÇʹÓÃÌõÄ¿×Ö·û´®×÷Ϊ¿ÉÊÓÎı¾£¬½«URL×Ö·û´®ÊýÁÐ×÷ΪHREF Ô´£º
If intRecordsDisplayed = 0 Then
"~~~~No records where found for this query
strHTML = strHTML & "Query not found"
Else
"~~~~List search titles with URL link results
For intCount = 1 to intRecordsDisplayed
strHTML = strHTML & "£¼ A HREF=""" & astrURLarray(intCount) & """" _
& "TARGET=""" & mstrResultFrameName & """ £¾" & _
astrTitleArray(intCount) & "£¼ /A £¾£¼ BR £¾"
Next
End If
¡¡¡¡×¢ÒâÒÔmstrResultFrameName ±äÁ¿¸øTARGET ¸³Öµ¡£»ØÏëÆðÀ´Õâ¸ö±äÁ¿¿ÉÒÔ´ÓASPÖ÷»úÎļþÉèÖá£Ëü¾ö¶¨ÔÚÄĸö»ÃæÖÐÏÔʾHREF£º
¡¡¡¡È»ºóËùÐèÒª×öµÄ¾ÍÊǽ«HTML´úÂë·µ»Ø×Ö·û´®±äÁ¿ÖУº
"~~~~~Send back HTML code of the Title/URL list
ListRecords = strHTML
End Function
»Øµ½ShowSearchFrame ·½·¨µÚÎ岿·Ö
¡¡¡¡Êµ¼ÊÉÏÎÒÃÇÒѾÍê³ÉÁËÕâ¸ö·½·¨£¬µ«ÊÇÎÒ»¹ÊÇÏëÈ·±£ÎÒÃÇÔÚͬһҳÉÏ£¬ÏÂÃæÊDZ¾·½·¨µÄÍêÕûÇåµ¥£º
Public Function ShowSearchFrame() As String
"~~~~~ Local variables
Dim strHTML As String
Dim astrTitleArray() As String
Dim astrURLArray() As String
Dim intRecordsDisplayed As Integer
Dim intRecordsMatched As Integer
"===== Search input field
strHTML = SearchInputField
If mobjRequest.QueryString("Src") = "" Then
"~~~~~ No query was entered
strHTML = strHTML & "Enter a query"
Else
"[Search code here]
mintRecordsSearched = GetRecords(astrTitleArray(), astrURLArray(), _
intRecordsDisplayed, intRecordsMatched)
"~~~~Exit of a database error occurred
If mintRecordsSearched = -1 Then Exit Function
"===== NARVIGATION BAR
If Not intRecordsDisplayed = 0 Then
strHTML = strHTML & NavigationBar(intRecordsMatched, _
intRecordsDisplayed) & "£¼ BR £¾£¼ BR £¾"
End If
"===== URL Title list
strHTML = strHTML & ListRecords(astrTitleArray(), astrURLArray(), _
intRecordsDisplayed)
End If
"~~~~~ Send html code to IIS for delivery to visitors browser
mobjResponse.Write (strHTML)
End Function
¡¡Õâ¾ÍÊÇÈ«²¿ÁË¡£ÏÖÔÚ¿ÉÒÔ±àÒëDLL£¬¼ÌÐøÏÂÒ»²½ÁË¡£
½øÒ»²½³¬Ô½»ù´¡
¡¡¡¡ÎÒʹÕâЩ´úÂ뾡¿ÉÄܵؼòµ¥£¬Ö»Óм¸¸öÊý¾Ý¿â´¦ÀíºÍÊôÐÔ³ÌÐòÕâЩ±ØÐèµÄÄÚÈÝ¡£µ«ÊÇΪÁËÔöÇ¿´úÂ빦ÄÜ£¬»¹ÓÐÐí¶à¿ÉÒÔ×ö¡£
¡¡¡¡Äܹ»Ïëµ½²¢ÇÒÒ²ºÜºÃÍæµÄÒ»¸ö¹¦ÄÜÊÇËõ¶Ì¹¹³ÉÁбíµÄ±êÌâ¡£¾¡¹Ü½«±êÌâÁбí·ÅÔÚÒ»¸ö±í¸ñÄÚ¿ÉÒÔ¸ÄÉÆ¿ÉÊÓ½çÃæ£¬µ«Êǹý³¤µÄ±êÌâ»áÏ÷ÈõÁбíµÄ¿É¶ÁÐÔ¡£ÒÔÏÂÊǽøÈëListRecords ·½·¨Ëõ¶Ì³¤±êÌâµÄ³ÌÐò£¬ËüÔÚ±êÌâ½áβ´¦¼Ó3¸ö¾äºÅ£¬±íÃ÷Ëü±»É¾½ÚÁË£º
Dim strTemp As String
strTemp = strTitleArray(intCount)
If Not Trim(Len(strTemp)) = intListTitleMax Then
strTemp = Trim(Left(strTemp, intListTitleMax))
If Trim(Len(strTemp)) = intListTitleMax Then
strTemp = strTemp & "..."
End If
End If
¡¡¡¡ÒÔÉÏ´úÂ뽫±êÌâÖг¬¹ýÒ»¶¨×Ö·û³¤¶ÈµÄ²¿·ÖÇжϡ£×Ö·û³¤¶ÈÊÇintListTitleMax µÄÖµ¡£
¡¡¡¡ÁíÍâÒ»¸öÔö¼Ó°üÀ¨ÁËÔÚÖ¸Õë´°¿ÚÖв鿴web Õ¾µãÃèÊöµÄÑ¡Ôñ¡£ÔÚÒ»¸ö·Ç»Ãæ°æ±¾ÖУ¬Õ¾µã¿ÉÒÔÔÚÒ»¸ö¿Õ°×ä¯ÀÀÆ÷ÖÐÆô¶¯£¬ÒÔ±ÜÃâÄÇЩҪÇó¶¥²¿»ÃæµÄä¯ÀÀÆ÷¡¢Óû§Õ³ÌùÐÂÕ¾µãµÄÄÜÁ¦¡¢Õ¾µãÀà±ð¹ýÂË¡¢ÒÔ×Öĸ»òËÑË÷µÄÆ¥Åä³Ì¶ÈΪ˳Ðò½øÐÐÁбíµÈµÈ¡£
ÔÚASPÏÂÖØÐ±àÒëDLL
¡¡¡¡µ±ÎÒÃǵÚÒ»´Î½«×é¼þ´æÎªDLLÎļþʱ£¬VB´´½¨Îļþ²¢ÔÚϵͳÉÏ×¢²áËüʱÊÇûÓÐÎÊÌâµÄ¡£µ«ÊÇÔÚASPÒ³ÉÏʹÓùýDLL¶ÔÏóÖ®ºó£¬Èç¹û²»ÍêÈ«¹ØµôASPϵͳµÄ»°£¬VB¾Í²»ÔÊÐíÖØÐ±àÒëDLL¡£
¡¡¡¡ÓÃWindows 9x Äã¿ÉÒԹرÕASP¡¢ÖØÐ±àÒëDLL²¢ÓÃÒÔÏÂÖ¸ÁîÆô¶¯ASP£º
pws /sto p
pws /star t
ÔÚNTϵͳ,ÓÃÏÂÁÐÖ¸Áî:
net stop iisadmin net start w3sv c
ÎÒ²»Äܿ϶¨ÄãÔõôÑù£¬µ«Êǵ±»ù±¾µÄ´úÂëÍê³Éºó£¬ÎÒ¶ÔÕâ¸öÔöÇ¿¹¦ÄܵĹý³ÌºÜ¸ÐÐËȤ£¬ÒòΪÎÒÖªµÀ£¬¼´Ê¹ËüÃDz»ÄÜÕý³£¹¤×÷£¬ÎҵĻù±¾´úÂ벿·ÖÊDz»ÊÜÓ°ÏìµÄ¡£´ÓÕâÒ»µãÉÏÀ´Ëµ£¬ºÜÄÑÈÃÕâ¸ö³ÌÐòÑù±¾±£ÁôÕâ¸öÑù×Ó¶ø²»È¥×öÄÇЩÔöÇ¿¹¤×÷¡£ËùÒÔÈç¹ûÄãÓÐÐËȤ£¬Ëæ±ãÔõôʹÓÃÕâ¸ö³ÌÐò¶¼¿ÉÒÔ¡£
µã»÷±¾´¦ÏÂÔØ±¾ÎÄÏà¹ØÁ´½Ó¡£
|