Recommandé: Parlez de l'écriture de code similaire aux fonctions de moteur de recherche à l'aide d'ASP Tout d'abord, créez une base de données d'accès. Il y a un tableau URLindex dans la bibliothèque, où les champs URL et les mots clés sont indexés respectivement, comme suit: Ce qui suit est le contenu référencé: texte URL (index
Il existe de nombreuses catégories de fonctions de base de données qui recherchent en ligne. Je ne suis pas meilleur que ceux-ci, mais je les ai juste écrits moi-même et je les ai utilisés plus. Il n'y a donc rien de spécial chez moi, j'utilise juste mes habitudes. Quant à l'efficacité et à d'autres aspects, donnez-moi des conseils! !
Code du programme:
| Ce qui suit est le contenu cité: <% Classe DBClass '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'Description variable 'Connecticut--------------------------------------------------------------------------------------------------------------------------- 'Strsql ------------------------------------------------------------------------------------------------------------------------- 'Vtbname ------------------------------------------------------------------------------------------------------------------------ 'Vpkey ------------------------------------------------------------------------------------------------------------------------- 'VPGFields --------- Interrogez les champs à afficher sur la page 'vPgSize-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'Vcurrpg ------------------------------------------------------------------------------------------------------------------- 'Vconditions ---- CONDITIONS DE PAGIN 'Vorderby ------------- Tri des pages de requête '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Private Conn, StrSQL, VTBNAME, VPKEY, VPGFIELDS, VPGSIZE, VCURPG, VConditions, Vorderby 'Initialisation de la classe Private Sub class_Initialize () 'Lorsqu'il s'agit d'une base de données MS SQL, définissez les deux variables suivantes Nom ou adresse IP «Dim Dbserver» du serveur de base de données Nom de la base de données «Dim Dbname» DIM DBPATH 'S'il s'agit d'une base de données d'accès, définissez son chemin ici Dim dbuser 'le nom d'utilisateur de connexion de la base de données Mot de passe de connexion du domaine DIM DBPASS Dim Connstr dbpath = /testasp/data/data.mdb 'définir le chemin de la base de données dbuser = admin dbpass = 123456 'Si c'est l'accès et a un mot de passe Connstr = provider = Microsoft.jet.oledb.4.0; Data Source = & Server.Mappath (DBPath) & _ ; User id = & dbuser &; mot de passe =; jet oledb: base de données mot de passe = & dbpass 'Si c'est l'accès et qu'il n'y a pas de mot de passe 'Connstr = Provider = Microsoft.Jet.oledb.4.0; Data Source = & Server.Mappath (DBPath) 'S'il s'agit d'une base de données MS-SQL 'Connstr = provider = sqloledB; User id = & dbuser &; Mot de passe = & dbpass & _ ';; Catalogue initial = & dbname &; Source de données = & dbserver sur l'erreur reprendre ensuite Définir Conn = Server.CreateObject (ADODB.Connection) Conn.Open Connstr Errmsg se connecter à la base de données Sub-Sub 'Fin de la classe Private Sub class_termiate () Conn.Close Définir Conn = Rien Sub-Sub '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'Définir des valeurs pour les variables de la classe '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'Définir les instructions SQL Propriété publique Soit SQLSTR (BYVAL VALUES) strSQL = valeurs Propriété finale «Définissez le nom de la table de la page de requête Propriété publique Soit Tbname (ByVal Values) vtbname = valeurs propriété finale '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'Réglez la clé principale de la table de requête Paged Propriété publique Soit Pkey (valeurs ByVal) vpkey = valeurs propriété finale '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'Définir les champs affichés Propriété publique Soit Pgfields (valeurs Byval) vpGFields = valeurs propriété finale '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'Définir le nombre d'enregistrements affichés par page Propriété publique Soit PGSize (valeurs de byVal) vpgsize = valeurs propriété finale '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'Définir le nombre de pages actuellement affichées Propriété publique Soit Currpg (ByVal Values) VCurrpg = valeurs propriété finale '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'Réglez les conditions de requête Propriété publique LET CONDITIONS (VALEURS BYVAL) Si Len (valeurs)> 0 alors vconditions = où et valeurs autre vconditions = où 1 = 1 terminer si propriété finale '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'Définir le type de requêtes Propriété publique Let OrderBy (ByVal Values) Si Len (valeurs)> 0 alors vorderby = ordre par et valeurs autre vorderby = valeurs terminer si propriété finale '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'Obtenez le nombre total d'enregistrements Propriété publique GET VRSCOUNT () Si vcurrpg = 1 alors SQLC = SELECT COUNT (& VPKEY &) AS IDCOUNT FROM & VTBNAME & & VCONTItions set rsc = server.createObject (adodb.recordSet) RSC.Open SQLC, Conn, 0,1 Rsnum = rsc (idcount) rsc.close Définir RSC = rien Si rsnum> 0 alors réponse.cookies (irecord) = rsnum vrsccount = rsnum autre vrScount = 0 terminer si autre VRSCOUNT = request.cookies (irecord) terminer si propriété finale 'Obtenez le nombre total de pages Propriété publique GET VPGCOUNT () irscount2 = vrScount () Si irscount2 mod vpgsize = 0 alors vpgCount = int (irscount2 / vpgsize) autre vpgCount = int (irscount2 / vpgsize) 1 terminer si propriété finale 'Interrogez la base de données Fonction publique RSDB () sur l'erreur reprendre ensuite 'Résultats de la requête simple 'set rsdb = server.createObject (adodb.recordSet) 'RSDB.Open StrSql, Conn, 1,3 Définir RSDB = Conn.Execute (StrSQL) Base de données de requête ERRMSG Fonction finale «Ajouter, mettre à jour, supprimer les enregistrements de base de données fonction publique Updb () sur l'erreur reprendre ensuite Conn.execute (StrSQL) ERRMSG Modifier les enregistrements de la base de données fonction finale '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'La fonction de jeu d'enregistrements utilisé pour implémenter la pagination Pagers de fonction publique () sur l'erreur reprendre ensuite dalm startrs startrs = (vcurrpg-1) * vpgsize '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- «Si vous utilisez cette instruction, vous devez modifier le code en fonction des paramètres. Plus précisément, si le tri est ASC, alors <Changement en>, et min est changé en max 'Si Startrs = 0 alors 'strsql = SELECT TOP & VPGSIZE & & VPGFIELDDS & From & Vtbname & & Vconditions & & Vorderby ' autre 'strsql = SELECT TOP & VPGSIZE & & VPGFIELDDS & FROM & VTBNAME & & VCONTItions & & & vpkey & < 'strsql = strSql & (select min (& vpkey &) from (select top & startrs & & vpkey & from 'strsql = strSql & vtbname & & vconditions & & vorderby &) as idtable) & vorderby 'fini si '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Si Startrs = 0 alors strSQL = SELECT TOP & VPGSIZE & & VPGFIELDS & FROM & VTBNAME & & VCONTITIONS & & VORDERBY autre strSQL = SELECT TOP & VPGSIZE & & VPGFIELDDS & From & Vtbname & & Vconditions & & & Vpkey & Not strSql = strSql & in (select top & startrs & & vpkey & from & vtbname & & vconditions & & vorderby strSql = strSql &) & vorderby terminer si '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- SET PAGERS = Server.CreateObject (ADODB.RecordSet) pager.Open StrSql, Conn, 0,1 Pagination d'enregistrement Errmsg fonction finale '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- fonction publique sqlpage () sur l'erreur reprendre ensuite SET SQLPAGE = Server.CreateObject (ADODB.RecordSet) Set cm = server.createObject (adodb.command) Cm.CommandType = 4 CM.ACTIVECONNECTION = Conn CM.CommandText = SP_UTIL_PAGE CM.Parameters (1) = vpgfields CM.PARAMETERS (2) = VTBNAME CM.PARAMETERS (3) = VCONTItions CM.PARAMETERS (4) = VORDERBY CM.Parameters (5) = vpkey CM.PARAMETERS (6) = VCURPG CM.PARAMETERS (7) = VPGSIZE Cm.Parameters (8) = vrscount () CM.Parameters (9) = sqlpage.cursorlocation = 3 sqlpage.locktype = 1 sqlpage.open cm Pagination d'enregistrement Errmsg fonction finale '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'Fermez les records objrs '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- CRS de fonction publique (byval objrs) Objrs.close () Définir objrs = rien Fonction finale '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- fonction publique pagenav () IRSCOUNT = VRSCOUNT () 'Nombre total d'enregistrements myPage = vCurrpg'currpg'currpg'current Page Count PgCount = vpgCount () 'Nombre total de pages pre -set = mypage-1 Si préfabriqué <1 alors pre -set = 1 terminer si NextPage = MyPage 1 Si NextPage> pgCount alors NextPage = pgCount terminer si pagestr = <div id = fy> <span id = rpc> il y a un total de & irscount & record & mypage & / & pgcount & </span> pagestr = pagestr & <a href = '? currpage = 1' class = 'aw'> home </a> <a href = '? currpage = & prepage &' class = 'aw'> page précédente </a> si (mypage-1) mod 4 = 0 alors firstpage = mypage elseif int ((mypage-1) / 4) = 0 alors firstpage = 1 autre firstPage = int ((mypage-1) / 4) * 4 1 terminer si page de fin = première page 4 astr = pour i = première page à la page astr = astr & <a href = '? currpage = & i &' Si CSTR (MyPage) = CSTR (i) alors astr = astr & id = 'currp' terminer si astr = astr &> & i & </a> Si je> pgcount-1 alors sortez pour suivant astr = astr & <a href = '? currpage = & nextpage &' class = 'aw'> dernière page </a> <a href = '? currpage = & pgcount &' class = 'aw'> dernière page </a> </div> Pagestr = Pagestr & Ast Pagenav = Pagestr fonction finale 'Table de sortie avec fonction de pagination Fonction showtb (byval tbtil) Définissez rstb = pagers () 'S'il s'agit d'une procédure stockée, appelez SQLPage () tbrs = rstb.getrows () CRS (RSTB) itblrow = ubound (tbrs, 2) itblcol = ubound (tbtil) tbtr = <table border = '0' cellpacing = '0' cellpadding = '0' cellpadding = '0'> <tbody> pour r1 = 0 à itblcol tr1 = tr1 & <td width = '& split (tbtil (r1), |) (1) &'> & Split (tbtil (r1), |) (0) & </td> suivant tr1 = <tr> & tr1 & </tr> pour ri = 0 à itblrow pour CI = 0 à itblcol td = td & <td width = '& split (tbtil (ci), |) (1) &'> & tbrs (ci, ri) & </td> suivant tr = tr & <tr> & td & </tr> td = null suivant Tbtil = null TBRS = NULL Response.Write (TBSTR & TR1 & TR & <TR> <TD COLSPAN = '& ITBLCOL 1 &'> & PAGENAV () & </TD> </TR> </TBODY> </ Table>) tbtr = null tr1 = null tr = null Fonction finale 'Imprimez l'instruction SQL afin que l'instruction vérifie s'il y a des erreurs Public sub Prnsql () Response.Write (StrSQL) Sub-Sub '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'Fonctions tolérantes aux pannes '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Fonction privée errmsg (errmsg) Si err.number <> 0 alors «S'il y a un problème, vous pouvez utiliser le code ici pour imprimer les informations de description pour un débogage facile. Commenter Response.Write (CSTR (Err.Description) & <br>) Err.Clear Response.Write <font color = '# ff0000'> & errmsg & error </font> 'Commentaire Réponse.end () Terminer si Fonction finale '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'La fonction de tolérance aux défauts se termine '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Classe finale %> |
Partager: Exemple de code de fichierSystemObject Dans l'exemple de code décrit dans cette section, des exemples réels sont fournis pour illustrer bon nombre des fonctionnalités disponibles dans le modèle d'objet FileSystemObject. Ce code montre toutes les fonctionnalités de l'utilisation des modèles d'objets ensemble et comment les utiliser efficacement dans votre propre code