A menudo nos encontramos con múltiples problemas de consulta y las declaraciones SQL largas a menudo confunden a la gente. Especialmente cuando el cliente completa parcialmente las condiciones de consulta, será aún más difícil utilizar métodos habituales. Lo siguiente utiliza inteligentemente la identidad donde 1 = 1 (de hecho, hay muchas, simplemente déjele el valor VERDADERO) para resolver este problema. 'titulo de informacion del tema
'empresa El nombre de la empresa que publica la información.
'contenido contenido de la información publicada
'dirección dirección de la empresa
'información Perfil de la empresa
'nota instrucciones relacionadas
Los valores anteriores se envían mediante FORMULARIO y luego se obtienen los valores correspondientes mediante: sujeto = recorte (Request.Form (asunto)), etc.
<%
'¡Esta función es crítica! --------------------------
Función sql(a,b,sqls)
if b<> entonces 'Si el cliente no envía este valor, no se generará la declaración SQL correspondiente.
sqls=sqls & y & a & como '% & b & %'
terminar si
sql=sqls
Función final
'-----------------Llamar a la base de datos
Establecer conexión=Server.CreateObject(ADODB.Connection)
DBpath=Servidor.MapPath(/database/mydb.mdb)
Conn.Open driver={Controlador de Microsoft Access (*.mdb)};pwd=;dbq= & DBpath
Establecer rs=Server.CreateObject(ADODB.Recordset)
sqls=select * de mytable donde 1=1
'Simplemente llame a la función anterior a continuación, puede llamarla muchas veces (teóricamente cualquiera)
sqls=sql(asunto,asunto,sqls)
sqls=sql(empresa,empresa,sqls)
sqls=sql(contenido,contenido,sqls)
sqls=sql(dirección,dirección,sqls)
sqls=sql(información,información,sqls)
sqls=sql(nota,nota,sqls)
sqls=sqls y ordenar por id desc
rs.open sqls,conexión,3,2
%>
Si no hay una función clave Función sql (a, b, sqls), ¡podemos imaginar cuántos juicios se necesitan uno tras otro!