Datenbankabfragen

Previous  Next

 

 

 

Letzte Änderung 01.11.2009

Filter

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

 

Bei der Abfrage einer Datenbank-Tabelle erhalten Sie standardmäßig alle Datensätze der jeweiligen Datenbank-Tabelle als Abfrageergebnis. Dies kann zu unnötig langen Ladezeiten, zu unübersichtlichen Tabellen auf dem Bildschirm und bei großen Datenbeständen sogar zu einem Speicherüberlauf führen. Dies lässt sich nur durch ein gezieltes Filtern der Treffer vermeiden.

 

Ein Filter wird grundsätzlich als Bedingung formuliert. Die Datenbank liefert dadurch nur noch die Daten aus, welche die Filter-Bedingung mit Wahr erfüllen. Eine Bedingung setzt sich aus dem Datenfeld das durchsucht werden soll, einem speziellen SQL-Operator und dem jeweiligen Suchbegriff zusammen.

 

Der Suchbegriff wird i.d.R. vom Anwender in einem Suchformular eingegeben oder ausgewählt und muss in solchen Fällen immer erst von der jeweiligen Formular-Komponente mit Hilfe einer Methode ausgelesen werden. Das Auslesen kann wahlweise schon vor der Datenbankabfrage oder direkt in der Filter-Bedingung im SQL-Assistenten erfolgen.

 

 

Aufbau einer Filter-Bedingung (Where-Condition) in SQL:

Datenfeld = Suchbegriff

 

 

 

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.

clip0414

8.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.
9.Geben Sie bei Bedingung das Datenfeld "MARKE" als Zeichenkette, d.h. in Anführungszeichen, an.
10.Geben Sie als SQL-Operator = ein.

clip0421

11.Klicken Sie in der GUI-Ansicht das Textfield 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.Klicken Sie auf OK, um den SQL-Assistenten zu schließen.

 

 

Hinweis: Alle SQL-Schlüsselwörter und -Operatoren, die vom SQL-Assistenten nicht automatisch erkannt werden, lassen sich im SQL-Assistent als Zeichenkette, sprich in Anführungszeichen und mit dem + Zeichen hinzufügen z.B. + " BETWEEN". Vor dem Schlüsselwort muss zudem immer ein Leerzeichen eingefügt werden, da aus der gesamten Zeile jeweils eine zusammenhängende Zeichenkette gebildet wird.

 

Tipp: Für die Angabe von Datenfelder sollten Sie keine Zeichenketten, sondern die Konstanten der Virtuellen Tabelle verwenden, da nur Konstanten automatisch angepasst werden, wenn Sie später einmal die Bezeichnung einer Tabelle oder eines Datenfeldes ändern müssen. Dies gilt ebenso, wenn Sie Tabellen und Datenfelder in Funktionen und Methoden als Parameter angeben müssen.

 

 

Basiswissen: Virtuelle Tabellen, Datenbankabfragen