Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#10

Re: Suche Erklärung für SQL-Syntax

  Alt 16. Mär 2010, 07:46
Hallo,
where 1=1 hat einen charmanten Vorteil:

Du kannst alle SQL-Statments mit den erforderlichen Spalten und Tabellen ausformulieren und testen.
Wenn nun zur Laufzeit die Wherebedingung geändert/ergänzt werden muss, hast Du in der Regel folgendes "Problem":
Ist schon eine Wehrebedingung vorhanden, wenn nein fängst Du mit Where Spalte = Wert an und hängst weitere Bedingungen mit And an. Ist schon eine Wherebedingung vorhanden, so musst Du mit And anfangen.
Hast Du nun alle Abfragen mit Where 1=1 versehen, brauchst Du Dir keine Gedanken über eine vorhandene oder nicht vorhandene Wehrebedingung machen, sondern kannst immer mit And Spalte=Wert arbeiten. Hierbei ist es dann vollkommen unerheblich, an wievielen Stellen, mit welchen Methoden eine Abfrage um eine Wherebedingung ergänzt wird. Mit And Spalte=Wert liegst Du hier immer richtig und musst das Abfragestatement letztlich nicht im Detail kennen und nicht selbst auf das Vorhandensein einer Wherebedingung überprüfen.
Dies ist vor allem dann praktisch, wenn eine Abfrage bzw. deren Wherebedingung sich erst im Ablauf von einer Reihe unterschiedlicher Programmschritte ergibt.

Gehen wir davon aus, dass Du eine großes Objekt mit vielen Details oder Wiederholgruppen hast, also eine klassische 1:n-Beziehung, so kannst Du einmal den entsprechenden Join formulieren und nachher im Objekt jedem Detail bzw. jeder Wiederholgruppe eine Methode "spendieren", die den entsprechenden Teil der Wherebedingung an die Abfrage anfügt, bzw. den "AND-Teil" der Wherebedingung für sich liefert. Das gut objektorientiert implementiert spart Dir dann viel Arbeit. Ein Methodenaufruf und schon ist die Abfrage um die objektspezifische Wherebedingung ergänzt.
  Mit Zitat antworten Zitat