Query mit Query

QueryQuery zeigt auf, wie man mit einer nicht editierbaren Datenmenge verfahren kann, um die Daten zu bearbeiten.

Außerdem wurden hier die Einstellungen der Datenbankfelder nicht im Programmcode, sondern in den ZQuery und DBGrid Komponenten durchgeführt. Doppelklick auf die ZQueries oder die DBGrids zeigen (siehe Bild oben) die jeweilige Liste der Felder. Beim ersten Mal müssen die Felder mitteld der entsprechenden Buttons übernommen werden. Bei dieser Gelegenheit kann man bestimmte Felder ausschließen. Nach der Auswahl kann die Reihenfolge der Felder mittels der Pfeile nach oben und nach unten verändert werden. Bei Klick auf ein Feld können dann diesem Feld Attribute zugeordnet werden, wie die sichtbare Breite des Feldes oder der Titel, der dann nicht mit dem Namen des Datenbankfeldes deckungsgleich ist, usw.

Die auf der Seite verwendeten Komponenten sind mittlerweile bekannt. Wenn nicht, sollte zuerst die Seite "Edit Table" durchgearbeitet werden. Auf die Verknüpfung der Tabellen möchte ich nur kurz eingehen, die Funktionsweise wird ebenfalls in "Edit Table" erklärt.

Es wird hier mittels einer SQL Abfrage eine Datenmenge erzeugt, welche oben links angezeigt wird. Diese Abfrage erstreckt sich über 2 Tabellen und ist deshalb nicht editierbar. Durch Verknüpfung dieser Abfrage mit einer weiteren ZQuery mit jeweils nur einer Tabelle im Zugriff können die Daten jedoch bearbeitet werden. So kann man eine komplexe SQL Abfrage erstellen und bestimmte Daten auf einfache Art und Weise editierbar machen.

Jetzt zu den drei Tabellen rechts. Die ersten zwei von oben zeigen jeweils nur eine Zeile. Diese sind exakt der Abfrage zugeordnet. Das dritte DBGrid (DBGrid6) unten rechts zeigt alle Kommunikationsdaten der jeweiligen Adresse an.

Im Bild oben sehen wir die Verknüpfungen der ZQueries die den DBGrids auf der rechten Seite zugeordnet sind.

Als erstes ZQueryQQAdress: Hier wird die ADRESSID der Abfrage ZQueryQQSearch  mit der ADRESSID von ZQueryQQAdress verlinkt. Das bedeutet, dass jeweils nur die eine Adresse, auf die in der Abfrage zugegriffen wird, angezeigt wird.

Bei ZQueryQQContact wird die CONTACTID der Abfrage ZQueryQQSearch  mit der CONTACTID von ZQueryQQContact verlinkt. Das bedeutet, dass jeweils nur der eine Kontakt, auf den in der Abfrage zugegriffen wird, angezeigt wird.

Bei ZQueryQQAllContacts wird die ADRESSID der Abfrage ZQueryQQSearch  mit dem ADRESSID Feld von ZQueryQQContact verlinkt. Das ist die gleiche Vorgehensweise wie auf der Seite "Edit Table". Das bedeutet, dass alle Kontakte, der in der Abfrage zu gegriffenen Adresse angezeigt werden.

Beschreibung ZQuery

 <>

 

© CMBasic.de