Datenbankabfragen

Previous  Next

 

 

 

Letzte Änderung 01.11.2009

Such-Formulare

Für dieses Beispiel benötigen Sie das Beispiel-Projekt fahrzeuge.xdev

 

Das Suchergebnis einer Datenbankabfrage lässt sich am besten mit Hilfe eines Such-Formulars eingrenzen. Dazu müssen Sie für jedes gewünschte Suchkriterium eine geeignete Formular-Komponente anlegen und in der Datenbankabfrage eine entsprechende Filter-Bedingung konstruieren. Bei größeren Such-Formularen kann die Datenbankabfrage jedoch sehr umfangreich werden, denn Sie müssen für jedes einzelne Eingabe- und Auswahlfeld eine eigene Abfrage-Bedingung konstruieren und diese in der Datenbankabfrage angeben. Zudem müssen Sie festlegen, wie genau der Suchbegriff angegeben werden muss und welche Bedingungen zutreffen müssen und welche nicht. Um alle Fälle abdecken zu können, lassen sich Bedingungen mit Hilfe logischer Operatoren entsprechend miteinander verknüpft werden. Bei komplexen Bedingungen können auch Klammern verwendet werden, um eine bestimmte Reihenfolge festzulegen. Es gelten die mathematischen Gesetzmäßigkeiten für die Verwendung von Klammern.

 

 

Fortsetzung des Beispiels Abfrage mehrerer Datenbank-Tabellen (Joins):

 

7.Wechseln Sie in den GUI-Builder, verschieben Sie den Button nach rechts, fügen Sie links einen Text-Container ein, geben Sie Marke: ein und fügen Sie daneben ein Textfield ein.
8.Klonen Sie den Text-Container, ändern Sie den Text in Modell: um und klonen Sie dann das Textfield.

clip0423

9.Selektieren Sie den Button, wechseln Sie in die Code-Ansicht, klicken Sie die Datenbankabfrage an, um den SQL-Assistenten aufzurufen und klicken Sie dann im SQL-Assistenten auf Schritt 3: Filter festlegen.
10.Klicken Sie in der Bibliothek bei Virtuelle Tabellen mit Doppelklick auf HERSTELLER und ziehen Sie das Datenfeld MARKE per Drag&Drop in den SQL-Assistenten in die erste Zeile bei Bedingung und geben Sie als Operator = ein.
11.Klicken Sie in der GUI-Ansicht das Textfield bei Marke: an, um alle Methoden des Textfields in der Bibliothek anzuzeigen und ziehen Sie die Methode hmtoggle_plus1 getText( ) | XDEV NLS: holeText( ) in den SQL-Assistenten.
12.Geben Sie nun das Sonderzeichen && als Operator für logisch UND ein.
13.Klicken Sie in der Bibliothek bei Virtuelle Tabellen mit Doppelklick auf MODELLE und ziehen Sie das Datenfeld MODELL per Drag&Drop in den SQL-Assistenten und geben Sie als Operator = ein.
14.Klicken Sie in der GUI-Ansicht das Textfield bei Modell: an, um alle Methoden des Textfields in der Bibliothek anzuzeigen und ziehen Sie die Methode hmtoggle_plus1 getText( ) | XDEV NLS: holeText( ) in den SQL-Assistenten.

clip0422

15.Klicken Sie auf OK, um den SQL-Assistenten zu schließen.

 

 

Hinweis: Immer wenn Sie im Such-Formular neue Formular-Komponenten hinzufügen oder löschen, müssen Sie auch die jeweiligen Abfrage-Bedingungen entsprechend anpassen. Bei umfangreichen Formularen kann sich jedoch eine extrem lange Verkettung von Bedingungen ergeben, sodas Änderungen und Erweiterungen in der Praxis oft sehr aufwändig sind und eine lästige Fehlerquelle darstellen. Mit dem Einsatz der Komponente Formular können Sie sich die Abfrage-Bedingung für ein komplettes Formular erzeugen lassen.

 

Tipp: Mit dem SQL-Operator wird automatisch auch Filter-Genauigkeit festgelegt. Während mit = immer exakt nach dem entsprechenden Begriff gesucht wird, lässt sich mit dem SQL-Operator LIKE auch nach Wortfragmenten suchen, z.B. #HERSTELLER.MARKE LIKE Textfield.getText().

 

 

Basiswissen: Virtuelle Tabellen, Datenbankabfragen, Formulare, Formular-Komponenten