Wir stoßen oft auf mehrere Abfrageprobleme, und lange SQL -Aussagen fühlen sich oft verwirrt. Insbesondere wenn der Kunde teilweise unter den Abfragebedingungen gefüllt ist, ist es schwieriger, normale Methoden anzuwenden.
Im Folgenden wird die konstante Bildung von 1 = 1 (in der Tat, damit sein Wert wahr ist) verwendet, um dieses Problem zu lösen.
Zusammenfassung:
'Betreffinformationstitel
'Firma veröffentlichte Informationsfirmenname
'Inhaltsveröffentlichungsinformationen Inhalte Inhalte
Adresse Unternehmensadresse
Einführung in die 'Infomation
'Beachten Sie verwandte Anweisungen
Die obigen Werte werden per Formular eingereicht und dann bestanden: Subjekt = Trim (Request.Form (Subjekt)) usw., um den entsprechenden Wert zu erhalten.
<%
'Diese Funktion ist kritisch!
Funktion SQL (A, B, SQLS)
Wenn B <> dann 'Wenn der Kunde diesen Wert nicht übermittelt, wird die entsprechende SQL -Anweisung nicht generiert.
SQLS = SQLS & & & A & A & LABEN ' % & B & %'
Ende wenn
SQL = SQLS
Endfunktion
'----------------- Rufen Sie die Datenbank an
Setzen Sie conn = server.createObject (adodb.Connection)
Dbpath = server.mappath (/database/mydb.mdb)
Conn.open Driver = {Microsoft Access Driver (*.MDB)};
Setzen Sie rs = server.createObject (adodb.oldset)
SQLS = SELECT * von myTable wobei 1 = 1
'Die folgenden Anrufe können oben aufgerufen werden, und viele Anrufe können aufgerufen werden (theoretisch willkürlich)
SQLS = SQL (Subjekt, Subjekt, SQLS)
SQLS = SQL (Unternehmen, Unternehmen, SQLS)
SQLS = SQL (Inhalt, Inhalt, SQLS)
SQLS = SQL (Adresse, Adresse, SQLS)
SQLS = SQL (Infomation, Infomation, SQLS)
SQLS = SQL (Hinweis, Hinweis, SQLS)
SQLS = SQLS & Order By ID Desc.
Rs.oopen SQLS, Conn, 3,2
%>
Schlussfolgerung: Wenn es keine Schlüsselfunktionsfunktion SQL (A, B, SQLS) gibt, können wir uns vorstellen, wie viele Urteile nacheinander beurteilen müssen!