Muitas vezes encontramos vários problemas de consulta, e as longas declarações SQL geralmente fazem as pessoas se sentirem confusas. Especialmente quando o cliente é parcialmente preenchido nas condições de consulta, será mais difícil usar métodos comuns.
O seguinte usa inteligentemente a formação constante de onde 1 = 1 (de fato, para que seu valor seja verdadeiro) para resolver esse problema.
Resumo:
'Título da informação do sujeito
'Empresa publicada Nome da empresa
'Conteúdo do Conteúdo Informações Conteúdo
Endereço do endereço da empresa
Introdução a 'Infomação
'Observe instruções relacionadas
Os valores acima são enviados por formulário e depois passados: sujeito = TRIM (request.form (sujeito)), etc. Para obter o valor correspondente.
<%
'Esta função é crítica!
Função sql (a, b, sqls)
Se B <> então 'se o cliente não enviar esse valor, a instrução SQL correspondente não será gerada.
sqls = sqls & & & a & like ' % & b & %'
final se
SQL = SQLS
Função final
'----------------- Ligue para o banco de dados
Definir Conn = Server.CreateObject (Adodb.Connection)
Dbpath = server.mappath (/database/mydb.mdb)
Conn.open driver = {Microsoft Access Driver (*.mdb)};
Set rs = server.createObject (adodb.oldset)
sqls = selecione * de myTable onde 1 = 1
'As seguintes chamadas podem ser chamadas acima, e muitas chamadas podem ser chamadas (teoricamente arbitrariamente)
Sqls = sql (sujeito, sujeito, sqls)
SQLS = SQL (Empresa, Empresa, SQLS)
SQLS = SQL (Conteúdo, Conteúdo, SQLS)
sqls = sql (endereço, endereço, sqls)
SQLS = SQL (Infomação, Infomação, SQLS)
sqls = sql (nota, nota, sqls)
SQLS = SQLS & Order by Id Desc
Rs.ooopen SQLS, Conn, 3,2
%>
Conclusão: Se não houver função -chave SQL (A, B, SQLS), podemos imaginar quantos julgamentos precisam julgar um após o outro!