Einzel-Tabelle abfragen

Anfang  Zurück  Vor

Letzte Änderung 19.04.2011

 

Die einfachste Form einer Datenbankabfrage ist die Abfrage einer einzelnen Datenbank-Tabelle. Um eine Datenbankabfrage durchführen zu können, müssen Sie im Projektmanagement zuerst eine Datenquelle anlegen. Ein ER-Diagramm ist für die Abfrage einer einzlenen Tabelle nicht notwendig.

 

 

Datenbankabfrage

 

1.Geben Sie im Code-Editor die Anweisung XDEV.Query ein und drücken Sie die Eingabe Taste, sodass sich der Query-Assistent öffnet.

2.Wählen Sie unter Datenquelle und Ziel bei Quelle (Datenbank) die Datenquelle fahrzeugeDB aus.

3.Klicken Sie die Datenbank-Tabelle an die Sie abfragen möchten, z.B. Fahrzeuge, oder auch nur einzelne Datenfelder davon.

 

Hinweis: Falls bereits eine namensgleiche Virtuelle Tabelle existiert, wird diese automatisch vorgeschlagen. Dabei sollten Sie jedoch überdenken, ob sich zur Laufzeit bereits Daten in dieser Virtuellen Tabelle befinden und es deshalb besser wäre, eine andere Virtuelle Tabelle als Zieltabelle zu verwenden.

 

4.Übernehmen Sie die vorgeschlagene Virtuelle Ziel-Tabelle oder lassen Sie sich eine neue Virtuelle Tabelle generieren, in die das Abfrageergebnis übertragen werden soll. Klicken Sie dazu bei Ziel (Virtuelle Tabelle) auf vt_guide und wählen Sie im folgenden Menü Virtuelle Tabelle generieren aus. Benennen Sie die Virtuelle Tabelle im folgenden Dialog bei Name genauso wie die Datenbank-Tabelle die Sie abfragen möchten und bestätigen Sie mit OK.

clip0013

 

 

5.Legen Sie fest, ob das Abfrageergebnis vor dem ersten Datensatz der Virtuellen Tabelle eingefügt, hinter dem letzten Datensatz angehängt oder ob ggf. existierende Daten einfach überschrieben werden sollen. Klicken Sie dazu bei Ziel (Virtuelle Tabelle) auf vt_overwrite und wählen Sie die Option Überschreibend, Vorne einfügen oder Hinten anhängen aus.

clip0015

6.Klicken Sie im Query-Assistenten auf OK, um den Assistenten zu schließen.

7.Schließen Sie die Anweisungszeile mit einem ; ab.

 

Tipp: Mit ein und derselben Datenbanktabelle können problemlos mehrere Virtuelle Tabellen verknüpft werden, um Abfrageergebnisse aufzunehmen oder um Daten darin abzuspeichern. Dazu muss im Tabellen-Editor lediglich der Name der verknüpften Datenbanktabelle angegeben werden.

 

Hinweise:

Es ist empfehlenswert, Namen von Virtuelle Tabellen mit einem Präfix zu erweitern, die Sie sich speziell für ein bestimmtes Abfrageergebnis generieren lassen, sodass diese sich von herkömmlichen Virtuellen Tabellen abheben, z.B. FahrzeugeRS (RS steht für Resultset).

Datenbankabfragen mit XDEV.Query müssen immer in einer Try-Catch Anweisung stehen. Über eine Tooltip Funktion können Sie sich die Try-Catch Anweisung automatisch generieren lassen.

Für jede Datenbankabfrage sollten Sie das Abfrageergebnis mit Hilfe einer Abfragebedingung (WHERE) oder eines Limits eingrenzen, da es bei großen Datenmengen ansonsten leicht zu einem Speicherüberlauf kommen kann. Entsprechende Ergänzungen können Sie im Query-Assistenten bei Filter sowie bei Anzahl Treffer vornehmen.

 

 

 

Optionen für die Ziel-VT

 

Virtuelle Tabelle generieren - Legt eine neue Virtuelle Tabelle an.

Virtuelle Tabelle erweitern - Die angegebene Ziel-VT wird mit selektierten Datenfeldern erweitert, falls diese noch nicht vorhanden sind.

Virtuelle Tabelle anpassen - Die angegebene Ziel-VT wird mit selektierten Datenfeldern erweitert, falls diese noch nicht vorhanden sind. Bereits vorhandene Datenfelder, die jedoch nicht selektiert wurden, werden aus der Ziel-VT entfernt.

Überschreibend - Überschreibt bereits vorhandene Datensätze in der Virtuellen Tabelle mit dem Abfrageergebnis.

Vorne einfügend - Fügt das Abfrageergebnis vor dem ersten, bereits vorhandenen Datensatz in der Virtuellen Tabelle ein.

Hinten anhängend - Hängt das Abfrageergebnis nach dem letzten, bereits vorhandenen Datensatz in der Virtuellen Tabelle an.

 

 

 

Generierter Code

 

try

{

   XDEV.Query(new QueryFahrzeuge());

}

catch(DBException e)

{

   e.printStackTrace();

}

 

 

private static class QueryFahrzeuge extends Query

   {

      QueryFahrzeuge()

      {

         setDataSource(kfzDatenbank.DB);

         

         select("ID").into(Fahrzeuge.ID);

         select("BILDPFAD").into(Fahrzeuge.BILDPFAD);

         select("MODELL_ID").into(Fahrzeuge.MODELL_ID);

         select("LEISTUNG").into(Fahrzeuge.LEISTUNG);

         select("ERSTZULASSUNG").into(Fahrzeuge.ERSTZULASSUNG);

         select("KILOMETERSTAND").into(Fahrzeuge.KILOMETERSTAND);

         select("FAHRZEUGTYP_ID").into(Fahrzeuge.FAHRZEUGTYP_ID);

         select("FAHRZEUGART_ID").into(Fahrzeuge.FAHRZEUGART_ID);

         select("KRAFTSTOFF_ID").into(Fahrzeuge.KRAFTSTOFF_ID);

         select("GETRIEBE_ID").into(Fahrzeuge.GETRIEBE_ID);

         select("FARBE_ID").into(Fahrzeuge.FARBE_ID);

         select("PREIS").into(Fahrzeuge.PREIS);

         from("FAHRZEUGE");

         

         setVirtualTable(Fahrzeuge.VT);

         setFillMethod(VirtualTableFillMethod.OVERWRITE);

      }

   }

 

 

Generierten Abfragecode bearbeiten

 

Der Query-Assistent generiert aus der im Query-Assistentendefinierten Abfrage datenbankunabhängigen Java Code. Änderungen oder Erweiterungen können Sie nun wahlweise im Assistenten oder direkt im generierten Quellcode vornehmen. Code-Änderungen werden vom Query-Assistenten automatisch registriert und beim nächsten Aufruf des Assistenten automatisch verarbeitet.

 

 

Java anstatt SQL

 

XDEV 5 generiert aus der im Query-Assistenten definierten Abfrage datenbankunabhängigen Java Code. Erst zur Laufzeit werden die entsprechenden SQL-Strings für die jeweils verwendete Datenbank-Schnittstelle generiert. Der Vorteil dieses Konzepts besteht darin, dass Ihr Projekt selbst immer datenbankunabhängig bleibt. Die Anbindung anderer Datenbanken zu einem späteren Zeitpunkt oder die Migration Ihrer Anwendungen auf eine andere Datenbank sind dadurch vergleichsweise unproblematisch.

 

Das Konzept ist Bestandteil des XDEV Application Frameworks.