Wir stoßen häufig auf Probleme mit mehreren Abfragen, und lange SQL-Anweisungen verwirren die Leute oft. Insbesondere wenn der Client die Abfragebedingungen teilweise ausfüllt, wird es noch schwieriger, normale Methoden zu verwenden. Im Folgenden wird geschickt die Identität verwendet, bei der 1 = 1 ist (tatsächlich gibt es viele, lassen Sie sie einfach den Wert TRUE haben), um dieses Problem zu lösen. 'Betreffinformationstitel
'Unternehmen Der Name des Unternehmens, das die Informationen veröffentlicht
'Inhalt Inhalt der veröffentlichten Informationen
'Adresse Firmenadresse
'Informationen Firmenprofil
'Beachten Sie die entsprechenden Anweisungen
Die oben genannten Werte werden von FORM übermittelt, und dann werden die entsprechenden Werte erhalten durch: subject=trim(Request.Form(subject)) usw.
<%
„Diese Funktion ist kritisch!“ --------------------------
Funktion sql(a,b,sqls)
if b<> then 'Wenn der Client diesen Wert nicht übermittelt, wird die entsprechende SQL-Anweisung nicht generiert.
sqls=sqls & und & a & like '% & b & %'
Ende wenn
sql=sqls
Funktion beenden
'-----------------Rufen Sie die Datenbank auf
Setze conn=Server.CreateObject(ADODB.Connection)
DBpath=Server.MapPath(/database/mydb.mdb)
Conn.Open Driver={Microsoft Access Driver (*.mdb)};pwd=;dbq= & DBpath
Setze rs=Server.CreateObject(ADODB.Recordset)
sqls=select * from mytable where 1=1
„Rufen Sie einfach die obige Funktion unten auf. Sie können sie mehrmals aufrufen (theoretisch beliebig).
sqls=sql(subjekt,subjekt,sqls)
sqls=sql(company,company,sqls)
sqls=sql(inhalt,inhalt,sqls)
sqls=sql(adresse,adresse,sqls)
sqls=sql(informationen,informationen,sqls)
sqls=sql(note,note,sqls)
sqls=sqls & order by id desc
rs.open sqls,conn,3,2
%>
Wenn es keine Schlüsselfunktionsfunktion SQL (a, b, sqls) gibt, können wir uns vorstellen, wie viele Urteile nacheinander erforderlich sind!