Freqüentemente encontramos vários problemas de consulta e instruções SQL longas costumam confundir as pessoas. Principalmente quando o cliente preenche parcialmente as condições de consulta, será ainda mais difícil utilizar métodos comuns. O seguinte usa habilmente a identidade onde 1 = 1 (na verdade, existem muitos, apenas deixe o valor TRUE) para resolver este problema. 'título da informação do assunto
'empresa O nome da empresa que publica as informações
'conteúdo conteúdo da informação publicada
'endereço endereço da empresa
'informações Perfil da Empresa
'observe instruções relacionadas
Os valores acima são submetidos por FORM, e a seguir os valores correspondentes são obtidos através de: subject=trim(Request.Form(subject)), etc.
<%
'Esta função é crítica! --------------------------
Função sql(a,b,sqls)
if b<> then 'Se o cliente não enviar este valor, a instrução SQL correspondente não será gerada.
sqls=sqls & e & a & como '% & b & %'
terminar se
sql=sqls
Função final
'-----------------Chama o banco de dados
Definir conn=Server.CreateObject(ADODB.Connection)
DBpath=Server.MapPath(/database/mydb.mdb)
Conn.Open driver={Driver Microsoft Access (*.mdb)};pwd=;dbq= & DBpath
Definir rs=Server.CreateObject(ADODB.Recordset)
sqls=select * da minhatabela onde 1=1
'Basta chamar a função acima abaixo, você pode chamá-la muitas vezes (teoricamente qualquer)
sqls=sql(assunto,assunto,sqls)
sqls=sql(empresa,empresa,sqls)
sqls=sql(conteúdo,conteúdo,sqls)
sqls=sql(endereço,endereço,sqls)
sqls=sql(informação,informação,sqls)
sqls=sql(nota,nota,sqls)
sqls = sqls e ordenar por id desc
rs.open sqls,conn,3,2
%>
Se não houver função chave Função sql (a, b, sqls), podemos imaginar quantos julgamentos são necessários um após o outro!