Programmieren mit dBASE PLUS: lookupSQL

Aus Wikibooks


Eine SQL-SELECT-Anweisung zur Beschreibung eines Rowset-Objekts, in dem Nachschlagewerte für ein Feld enthalten sind.

Eigenschaft von[Bearbeiten]

Field

Beschreibung[Bearbeiten]

Verwenden Sie lookupSQL oder lookupRowset , um für ein Feld eine automatische Nachschlagefunktion zu implementieren. Wenn ein Steuerelement, das Nachschlageoperationen unterstützt (wie etwa ein Kombinationsfeld), über dataLink mit einem Feld verknüpft ist, für das entweder lookupSQL oder lookupRowset definiert wurde, führt es folgende Aktionen aus:

  • Es übernimmt die Daten aus dem Nachschlage-Datensatzbereich.
  • Es sucht den wahren Wert des Feldes, das in dem Nachschlage-Datensatzbereich enthalten ist.
  • Es zeigt den korrespondierenden Nachschlagewert an.
  • Es führt die Umkehrung der Nachschlagefunktion aus, wenn sich der im Steuerelement angezeigte Wert verändert hat.
  • Es schreibt den korrespondierenden wahren Wert zurück in das Feld.

Wenn die Anzeige des Nachschlagewerts fehlschlägt, wird in dem Steuerelement ein Leerzeichen angezeigt. Wenn die Umkehrung der Nachschlagefunktion fehlschlägt, wird in das Feld eine Null geschrieben.

Die gleichen automatischen Nachschlageoperationen werden ausgeführt, wenn Sie auf die Eigenschaft value des Feldes zugreifen. Der Wert des Feldes erscheint als der Nachschlagewert. Wird der value-Eigenschaft ein Wert zugewiesen, wird die Umkehrung der Nachschlagefunktion ausgeführt.

Um eine automatische Nachschlagefunktion zu implementieren, ist es einfacher, die Eigenschaft lookupSQL zu setzen. lookupSQL enthält eine SQL-Anweisung folgender Form:

SELECT <Nachschlagefeld>, <Anzeigefeld> [,...] FROM <Nachschlagetabelle> [<Optionen>]

Die beiden ersten Felder müssen das Nachschlagefeld und das Anzeigefeld sein. Bei letzterem kann es sich auch um ein Kalkulationsfeld (berechnetes Feld) handeln. Um Informationen über die ausgewählte Zeile zu erhalten, lassen sich auch noch weitere Felder einbeziehen. Die SELECT-Anweisung kann auch die üblichen Optionen umfassen; so könnten Sie zur Beschleunigung der Nachschlagevorgänge dafür sorgen, daß die Datensätze der Tabelle nach dem Nachschlagefeld sortiert werden (oder daß eine Tabelle benutzt wird, für die ein entsprechender Index zur Verfügung steht). Die Ausführung der SQL-Anweisung erfolgt in der Datenbank, auf die sich auch die Abfrage (oder die Stored Procedure) bezieht, aus der der Datensatzbereich mit dem betreffenden Feld resultiert.

Wenn lookupSQL eine SQL-Anweisung zugewiesen wird, enthält die Eigenschaft lookupRowset eine Referenz auf das generierte Rowset-Objekt. Über diese Referenz können Sie Bezug nehmen auf die Felder des übereinstimmenden Datensatzes in der Nachschlagetabelle. In einer fortgeschrittenen Anwendung können Sie lookupRowset auch ein eigenes Rowset-Objekt zuweisen. In diesem Fall wird der generierte Datensatzbereich freigegeben.