Speicherprozesse sind komplex und komplex, können jedoch mehrere logische Zeichen unterstützen. Wir können in dieser Tabelle suchen und die Geschwindigkeit der gespeicherten Prozeduren optimieren. Kennen Sie also die Code -Implementierung des ASP- und gespeicherten Verfahrens, die Programme in den gespeicherten Verfahren durchsuchen? Lassen Sie den Herausgeber des Foot New Technology Channel Sie dazu bringen, mehr darüber zu erfahren!
ASP -Funktion
Die Codekopie lautet wie folgt:Funktion AnalyseKeyword (a_strsource)
Dim M_Strdest, M_intloop
Dim m_intbeginpos, m_intendpos
Dim m_strhead, m_strmiddle, m_strtail
M_Strdest = a_strsource
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'Entfernen Sie zuerst die Räume am Ende
m_strdest = ltrim (rtrim (m_strdest))
'Ersetzen &, "und" usw. mit +, -, Räume
M_Strdest = Ersatz (M_Strdest, "&", "+")
m_strdest = ersetzen (m_strdest "und", "+")
m_strdest = ersetzen (m_strdest "oder", chr (32))
m_strdest = ersetzen (m_strdest, nicht ","-")
'Initialisieren Sie die Variable, um die folgende Schleife zu machen
m_intbeginpos = 1
tun, während m_intbeginpos <> 0
m_intbeginpos = instr (m_strdest, chr (32))
Wenn m_intbeginpos <> 0 dann 'ist, wenn der Speicherplatz gefunden wird
m_strhead = rtrim (ltrim (links (m_strdest, m_intbeginpos))))
Rufen Sie print ("[analysekeyword ()]: verhandelt Space m_strhead =" + m_strhead)
m_strtail = rtrim (ltrim (rechts (m_strdest, len (m_strdest) - m_intBeginpos))))
Rufen Sie print ("[analysekeyword ()]: Verarbeitet Space m_strtail =" + m_strtail)
m_strdest = m_strhead + "*" + m_strtail
anders
Ausgang tun
Ende wenn
Schleife
m_strdest = ersetzen (m_strdest, "*", chr (32))
Rufen Sie Print ("[analysekeyword ()]: Nach dem Verarbeitungsräumen m_strdest =" + m_strdest)
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'Ersetzen Sie zuerst Einzelzitate durch Doppelzitate
M_Strdest = Ersatz (M_Strdest, CHR (39), CHR (34))
'Setzen Sie einen Anfangswert, damit die Schleife gehen
m_intbeginpos = 1
m_intendpos = 1
m_strhead = ""
M_STRTAIL = ""
tun, während m_intbeginpos <> 0 und m_intendpos <> 0
'Wenn doppelte Zitate gefunden werden, beachten Sie die Startposition und suchen Sie nach dem nächsten Doppelzitat
m_intbeginpos = instr (m_strdest, chr (34))
Wenn m_intbeginpos <> 0 dann 'ist, wenn das erste Zitat gefunden wird
Rufen Sie Print ("[analysekeyword ()]: Der Ort, an dem das erste Zitat angezeigt wird:" + cstr (m_intBeginPos))
m_intendpos = instr (m_intBeginpos + 1, m_strdest, chr (34))
Wenn m_intendpos <> 0 dann 'dann' Wenn das zweite Zitat gefunden wird
Rufen Sie print ("[analysekeyword ()]: wobei das zweite Zitat angezeigt wird:" + cstr (m_intendpos))
'Trennen Sie die gesamte Zeichenfolge in drei Absätze in Zitaten
Rufen Sie print ("[analysekeyword ()]: Handles Zitate m_strdest =" + M_Strdest)
m_strhead = links (m_strdest, m_intbeginpos - 1)
Rufen Sie print ("[analysekeyword ()]: Handles Zitate m_strhead =" + m_strhead)
M_strmiddle = Mid (M_Strdest, M_intBeginPos + 1, M_intendpos - M_intBeginPos - 1)
Rufen Sie Print ("[analysekeyword ()]: Handles Zitate m_strmiddle =" + m_strmiddle)
m_strtail = rechts (m_strdest, len (m_strdest) - m_intendpos)
Rufen Sie print ("[analysekeyword ()]: m_strtail =" + m_strtail)
„Wenn es in den Zitaten ein + Anzeichen gibt, wird es als Zeichen verarbeitet und vorübergehend durch andere Zeichen ersetzt
m_strmiddle = ersetzen (m_strmiddle, "+", "|")
m_strdest = m_strhead + ersetzen (rtrim (ltrim (m_strmiddle)), chr (32), "#") + m_strtail
anders
Ausgang tun
Ende wenn
anders
Ausgang tun
Ende wenn
Schleife
M_Strdest = Ersatz (M_Strdest, CHR (34), "+")
Rufen Sie Print ("[analysekeyword ()]: Nach der Verarbeitung von Anführungszeichen m_strdest =" + m_strdest)
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'Fehlerbehebung bei mehreren Plus -Schildern, wenn Sie auf mehrere Plus -Zeichen stoßen, denken Sie, es ist eine Zeichenfolge, kein logisches Zeichen
m_strdest = ersetzen (m_strdest, "+++", "|||")
m_strdest = ersetzen (m_strdest, "++", "||")
Rufen Sie Print ("[analysekeyword ()]: Nach der Verarbeitung mehrerer Minuszeichen m_strdest = '" + m_strdest + "'"))
Sehen Sie Räume auf beiden Seiten des Pluszeichens
m_strdest = ersetzen (m_strdest, " +", " +")
m_strdest = ersetzen (m_strdest, "+", "+")
m_strdest = ersetzen (m_strdest, " +", " +")
Rufen Sie Print ("[analysekeyword ()]: Nach der Verarbeitung von Räumen auf beiden Seiten des Minus -Zeichens m_strdest = '" + M_Strdest + "'"))
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
»Fehlerbehebung bei mehreren Minuszeichen, wenn Sie auf mehrere Minuszeichen stoßen, werden Sie denken, es sei eine Zeichenfolge, kein logisches Zeichen
m_strdest = ersetzen (m_strdest, "---", "~~~~")
m_strdest = ersetzen (m_strdest "-", "~~")
Rufen Sie Print ("[analysekeyword ()]: Nach der Verarbeitung mehrerer Minuszeichen m_strdest = '" + m_strdest + "'"))
'Behandeln Sie Räume auf beiden Seiten des Minuszeichens
m_strdest = ersetzen (m_strdest, " -", " -")
m_strdest = ersetzen (m_strdest, "-", "-")
m_strdest = ersetzen (m_strdest, " -", " -")
Rufen Sie Print ("[analysekeyword ()]: Nach der Verarbeitung von Räumen auf beiden Seiten des Pluszeichens m_strdest = '" + M_Strdest + "'"))
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Wenn len (m_strdest)> = 3 dann
m_strhead = links (M_Strdest, 1)
M_strmiddle = Mid (M_Strdest, 2, Len (M_Strdest) - 2)
m_strtail = rechts (M_Strdest, 1)
Wenn m_strhead = "+" oder m_strhead = "-" dann dann
m_strhead = ""
Ende wenn
Wenn m_strtail = "+" oder m_strtail = "-"-dann dann
M_STRTAIL = ""
Ende wenn
m_strdest = m_strhead + m_strmiddle + m_strtail
Ende wenn
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
m_strdest = ersetzen (m_strdest "-", "~~")
m_strdest = ersetzen (m_strdest, "++", "||")
M_Strdest = Ersatz (M_Strdest, CHR (32), "@")
Analysekeyword = m_strdest
Rufen Sie Print ("[analysekeyword ()]: Nachdem alle Verarbeitung abgeschlossen ist, m_strdest = '" + m_strdest + "'"))
Endfunktion
%>
Gespeicherte Verfahren
/***************************************************************
/ * Proc -Name: Up_ParsewordSearch */
/ * *//
/ * Beschreibung: Keywordsuche */
/ * *//
/ * Parameter: @a_strcategoryid category id */
/ * @A_intposition Anrufort */
/ * @a_strparseword suche nach keywords */
/ * @A_Introwcount begrenzt die maximale Anzahl von Datensätzen, um *////
/ * *//
/ * Datum: 2000/6/28 */
/ * *//
/ * Autor: liuyunpeng */
/ * *//
/* Geschichte: */
/***************************************************************
Wenn vorhanden (aus SysObjects auswählen, wobei id = object_id ("up_parsewordSearch")))
Drop Proc Up_ParsewordSearch
gehen
Erstellen Sie Proc Up_ParsewordSearch @A_strparseword varchar (255).
@a_strcategoryid varchar (255),
@a_intposition tinyint,
@A_Introwcount int
als
deklarieren @M_strsqlcondition varchar (255) -Der bedingte Teil der SQL -Anweisung
deklarieren @M_strsqlselect varchar (255) -SQL Anweisung Auswahlteil
deklarieren @M_strsqlcategory varchar (100) -Kategorie Teil der SQL -Anweisung
/*Verteidigen Sie den Auswahlteil von SQL basierend auf dem Anrufstandort*/
Wählen Sie @m_strsqlselect
= Fall
Wenn @a_intposition = 4 dann -Produktbibliothek
"ProductID, 'title' = productName, 'Beschreibung' = links (Beschreibung, 100)"
+ "vom Produkt wo"
Wenn @a_intposition = 5 dann -Business Opportunity Library
"ID, Title, 'Beschreibung' = links (konvertieren (varchar, Inhalt), 100)"
+ "vom Businesschance wo"
Wenn @a_intposition = 6 dann -Kompanienbibliothek
"Wählen Sie CompanyID, 'title' = companyName, 'Beschreibung' = links (Beschreibung, 100)"
+ "von der Firma wo"
Ende
/*Verteidigen Sie den Klassifizierungsteil von SQL anhand der Klassifizierungs -ID*/
Wählen Sie @m_strsqlcategory
= Fall
Wenn @a_strcategoryId <> "0" dann "categoryId wie '" + @a_strcategoryId + "%' und"
anders ""
Ende
/*Bestimmen Sie den bedingten Teil von SQL basierend auf dem Anrufstandort*/
Wählen Sie @m_strsqlcondition
= Fall
Wenn @A_intposition = 4 -Produkt
dann "(productName wie '%" + @a_strparseword + "%'"
+ "oder Beschreibung wie '%" + @a_strparseword + "%'" "
+ "oder produzierenname wie '%" + @a_strparseword + "%')"
Wenn @a_intposition = 5 -Business Chancen
Dann "(Titel wie '%" + @a_strparseword + "%'" "
+ "oder Schlüsselwort wie '%" + @a_strparseword + "%')"
Wenn @a_intposition = 6
dann "(Firmenname wie '%" + @a_strparseword + "%'" "
+ "oder Beschreibung '%" + @a_strparseword + "%')"
Ende
Setzen Sie rowCount @A_Introwcount
exec (@m_strsqlselect + @m_strsqlcategory + @m_strsqlcondition)
Setzen Sie RowCount 0
gehen
Das obige ist die Codeimplementierung des Suchprogramms in ASP und gespeicherten Verfahren. Ich glaube, jeder hat ein gewisses Verständnis. Wenn Sie weitere technische Informationen wissen möchten, achten Sie bitte weiter auf den falschen neuen Technologiekanal!