Los procesos de almacenamiento son complejos y complejos, pero pueden admitir múltiples caracteres lógicos. Podemos elegir buscar en esta tabla y optimizar la velocidad de los procedimientos almacenados. Entonces, ¿conoce la implementación del código del ASP y los procedimientos almacenados que buscan programas en los procedimientos almacenados? ¡Deje que el editor de The Foot New Technology Channel lo lleve a aprender más al respecto!
función ASP
La copia del código es la siguiente:Function AnalyseKeyword (A_strSource)
Dim m_strdest, m_intloop
Dim m_intbeginpos, m_intendpos
Dim m_strhead, m_strmiddle, m_strtail
m_strdest = a_strsource
'-----------------------------------------------------------------------------------------------
'Primero retire los espacios al final
m_strdest = ltrim (rtrim (m_strdest))
'Reemplazar y "y" etc. con +, -, espacios
m_strdest = reemplazar (m_strdest, "&", "+")
m_strdest = reemplazar (m_strdest "y", "+")
m_strdest = reemplazar (m_strdest "o", chr (32))
m_strdest = reemplazar (m_strdest, "no", "-")
'Inicialice la variable para hacer que el siguiente bucle vaya
m_intbeginpos = 1
hacer mientras m_intbeginpos <> 0
m_intbeginpos = instr (m_strdest, chr (32))
Si m_intbeginpos <> 0 entonces 'si se encuentra espacio
m_strhead = rtrim (ltrim (izquierda (m_strdest, m_intbeginpos))))
llamar a la impresión ("[AnalyseKeyword ()]: Handles Space m_strhead =" + m_strhead)
m_strtail = rtrim (ltrim (right (m_strdest, len (m_strdest) - m_intbeginpos))))
llamar a la impresión ("[Analysekeyword ()]: maneja el espacio m_strtail =" + m_strtail)
m_strdest = m_strhead + "*" + m_strtail
demás
salir
final si
bucle
m_strdest = reemplazar (m_strdest, "*", chr (32))
llamar a la impresión ("[Analysekeyword ()]: después de procesar espacios, m_strdest =" + m_strdest)
'-----------------------------------------------------------------------------------------------
'-----------------------------------------------------------------------------------------------
'Primero reemplace las cotizaciones individuales con cotizaciones dobles
m_strdest = reemplazar (m_strdest, chr (39), chr (34))
'Establezca un valor inicial para hacer que el bucle vaya
m_intbeginpos = 1
m_intendpos = 1
m_strhead = ""
m_strtail = ""
Haga mientras m_intbeginpos <> 0 y m_intendpos <> 0
'Si se encuentran cotizaciones dobles, tenga en cuenta la posición inicial y busque la próxima cotización doble
m_intbeginpos = instr (m_strdest, chr (34))
Si m_intbeginpos <> 0, entonces 'si se encuentra la primera cita
llamar a la impresión ("[AnalyseKeyword ()]: la ubicación donde aparece la primera cita:" + CSTR (M_INTBEGINPOS)))
m_intendpos = instr (m_intbeginpos + 1, m_strdest, chr (34))
Si m_intendpos <> 0, entonces 'si se encuentra la segunda cita
llamar a la impresión ("[AnalyseKeyword ()]: donde aparece la segunda cita:" + CSTR (m_intendpos))
'Separe toda la cadena en tres párrafos en citas
llamar a la impresión ("[AnalyseKeyword ()]: Handles citas m_strdest =" + m_strdest)
m_strhead = izquierda (m_strdest, m_intbeginpos - 1)
llamar a la impresión ("[AnalyseKeyword ()]: Handles citas m_strhead =" + m_strhead)
m_strmiddle = mid (m_strdest, m_intbeginpos + 1, m_intendpos - m_intbeginpos - 1)
llamar a la impresión ("[AnalyseKeyword ()]: maneja las citas m_strmiddle =" + m_strmiddle)
m_strtail = right (m_strdest, len (m_strdest) - m_intendpos)
llamar a la impresión ("[Analysekeyword ()]: m_strtail =" + m_strtail)
'Si hay un signo + en las citas, se procesará como un personaje y se reemplazará temporalmente con otros caracteres
m_strmiddle = reemplazar (m_strmiddle, "+", "|")
m_strdest = m_strhead + reemplazar (rtrim (ltrim (m_strmiddle)), chr (32), "#") + m_strtail
demás
salir
final si
demás
salir
final si
bucle
m_strdest = reemplazar (m_strdest, chr (34), "+")
llamar a la impresión ("[Analysekeyword ()]: después de procesar comillas, m_strdest =" + m_strdest)
'-----------------------------------------------------------------------------------------------
'-----------------------------------------------------------------------------------------------
'Solución de problemas de múltiples señales Plus, si encuentra múltiples señales más, cree que es una cadena, no un carácter lógico
m_strdest = reemplazar (m_strdest, "+++", "|||")
m_strdest = reemplazar (m_strdest, "++", "||")
llamar a la impresión ("[Analysekeyword ()]: después de procesar múltiples signos menos, m_strdest = '" + m_strdest + "'")
'Trata los espacios en ambos lados del signo más
m_strdest = reemplazar (m_strdest, " +", " +")
m_strdest = reemplazar (m_strdest, "+", "+")
m_strdest = reemplazar (m_strdest, " +", " +")
llamar a la impresión ("[Analysekeyword ()]: después de procesar espacios en ambos lados del signo menos m_strdest = '" + m_strdest + "'")
'-----------------------------------------------------------------------------------------------
'-----------------------------------------------------------------------------------------------
'Solución de problemas de múltiples signos menos, si encuentra múltiples signos menos, pensará que es una cadena, no un carácter lógico
m_strdest = reemplazar (m_strdest, "---", "~~~~")
m_strdest = reemplazar (m_strdest, "-", "~~")
llamar a la impresión ("[Analysekeyword ()]: después de procesar múltiples signos menos, m_strdest = '" + m_strdest + "'")
'Trata los espacios en ambos lados del signo menos
m_strdest = reemplazar (m_strdest, " -", " -")
m_strdest = reemplazar (m_strdest, "-", "-")
m_strdest = reemplazar (m_strdest, " -", " -")
llamar a la impresión ("[Analysekeyword ()]: después de procesar espacios en ambos lados del signo más m_strdest = '" + m_strdest + "'")
'-----------------------------------------------------------------------------------------------
'-----------------------------------------------------------------------------------------------
Si len (m_strdest)> = 3 entonces
m_strhead = izquierda (m_strdest, 1)
m_strmiddle = mid (m_strdest, 2, len (m_strdest) - 2)
m_strtail = right (m_strdest, 1)
Si m_strhead = "+" o m_strhead = "-" entonces
m_strhead = ""
final si
Si m_strtail = "+" o m_strtail = "-" entonces
m_strtail = ""
final si
m_strdest = m_strhead + m_strmiddle + m_strtail
final si
'-----------------------------------------------------------------------------------------------
m_strdest = reemplazar (m_strdest, "-", "~~")
m_strdest = reemplazar (m_strdest, "++", "||")
m_strdest = reemplazar (m_strdest, chr (32), "@")
Analysekeyword = m_strdest
llamar a la impresión ("[Analysekeyword ()]: después de que todo el procesamiento se complete m_strdest = '" + m_strdest + "'")
función final
%>
Procedimientos almacenados
/********************************************************
/ * Nombre de proc: UP_ParsewordSearch */
/ * */
/ * Descripción: búsqueda de palabras clave */
/ * */
/ * Parámetros: @A_strcategoryID Category ID */
/ * @a_intposition ubicación de llamada */
/ * @a_strparseword busque palabras clave */
/ * @a_introwcount limita el número máximo de registros para obtener */
/ * */
/ * Fecha: 2000/6/28 */
/ * */
/ * Autor: Liuyunpeng */
/ * */
/* historia: */
/********************************************************
Si existe (seleccione * de SysObjects donde id = Object_id ("UP_PARSEWORDSEARCH")))
soltar proc up_parsewordsearch
ir
crear proc up_parsewordsearch @a_strparseword varchar (255),
@a_strcategoryID varchar (255),
@A_intposition Tinyint,
@a_introwcount int
como
declarar @m_strsqlcondition varchar (255): la parte condicional de la instrucción SQL
declarar @m_strsqlselect varchar (255) -parte de selección de instrucciones
declarar @m_strsqlcategory varchar (100) --category parte de la instrucción SQL
/*Defiende la parte de selección de SQL en función de la ubicación de la llamada*/
Seleccione @m_strsqlselect
= caso
Cuando @a_intposition = 4 entonces -biblioteca de productos
"Seleccione ProductID, 'Title' = ProductName, 'Descripción' = Left (Descripción, 100)"
+ "del producto donde"
Cuando @a_intposition = 5 entonces -Biblioteca de oportunidades de negocios
"Seleccione ID, Título, 'Descripción' = Left (Convert (Varchar, Content), 100)"
+ "De BusinessChance donde"
Cuando @A_intposition = 6 entonces -Biblioteca de compañía
"Seleccione CompanyID, 'Title' = CompanyName, 'Descripción' = Left (Descripción, 100)"
+ "de la empresa donde"
fin
/*Defiende la parte de clasificación de SQL en función de la ID de clasificación*/
Seleccione @m_strsqlcategory
= caso
Cuando @a_strcategoryId <> "0" entonces "categoryId me gusta '" + @A_strCategoryId + "%' y"
demás ""
fin
/*Determine la parte condicional de SQL en función de la ubicación de la llamada*/
Seleccione @m_strsqlcondition
= caso
Cuando @a_intposition = 4 --Product
luego "(ProductName como '%" + @A_strparseword + "%'"
+ "o descripción como '%" + @a_strparseword + "%'"
+ "o nombre de producción como '%" + @a_strparseword + "%')"
Cuando @A_intposition = 5 -Oportunidades de negocios
Entonces "(título como '%" + @A_strparseword + "%'"
+ "o palabra clave como '%" + @a_strparseword + "%')"
Cuando @a_intposition = 6
Entonces "(CompanyName Like '%" + @a_strparseword + "%'"
+ "o descripción '%" + @a_strparseword + "%')"
fin
Establecer RowCount @A_IntrowCount
exec (@m_strsqlselect + @m_strsqlcategory + @m_strsqlcondition)
Establecer RowCount 0
ir
Lo anterior es la implementación del código del programa de búsqueda en ASP y procedimientos almacenados. Creo que todos tienen un cierto entendimiento. Si desea saber más información técnica, ¡continúe prestando atención al nuevo canal de tecnología incorrecto!