Aktivieren Sie bitte JavaScript, um diese Seite anzeigen zu können.

Altova MapForce 2021 Enterprise Edition

Um Datenbankdaten zu filtern und zu sortieren, verwenden Sie eine SQL WHERE/ORDER-Komponente. Auf diese Art können Sie über die grafische Benutzeroberfläche von MapForce manuell eine SQL WHERE-Klausel eingeben, die die Daten filtert. Optional dazu können Sie auch eine ORDER BY-Klausel definieren, wenn Sie die Datensätze nach einem bestimmten Datenbankfeld in auf- oder absteigender Ordnung sortieren möchten.

 

Die SQL WHERE/ORDER-Komponente muss mit einer Tabelle oder einem Feld einer Datenbankmapping-Komponente verbunden werden. Sie können die SQL WHERE/ORDER-Komponente auch mit einer Join-Komponente verbinden, wenn die verknüpfte Gruppe bzw. die verknüpften Datensätze gefiltert werden sollen (siehe Verknüpfen von Datenbankdaten mittels Join).

 

Hinzufügen von SQL WHERE/ORDER-Komponenten zum Mapping

So fügen Sie eine SQL WHERE/ORDER-Komponente zum Mapping hinzu:

 

1.Klicken Sie im Menü Einfügen auf SQL WHERE/ORDER. Standardmäßig hat die SQL WHERE/ORDER-Komponente die folgende Struktur:

mf_sql-where

2.Verbinden Sie eine Tabelle oder ein Feld der Quelldatenbank mit dem Datenelement table/field der SQL WHERE/ORDER-Komponente. Ein Beispiel dazu finden Sie im Mapping FilterDatabaseRecords.mfd aus dem Ordner <Dokumente>\Altova\MapForce2021\MapForceExamples\. In diesem Mapping werden mit Hilfe der SQL WHERE/ORDER-Komponente alle Datensätze aus der Quelltabelle "Person" gefiltert, deren Nachname mit dem Buchstaben "M" beginnt.

mf-sql-where-01

3.Doppelklicken Sie auf die Titelleiste der SQL WHERE/ORDER-Komponente (oder klicken Sie mit der rechten Maustaste auf die Komponente und wählen Sie im Kontextmenü den Befehl Eigenschaften). Daraufhin wird das Dialogfeld "SQL WHERE/ORDER-Eigenschaften" geöffnet.

mf-sql-where-02

4.Geben Sie die SQL WHERE-Klausel in das Textfeld oben ein. Geben Sie optional dazu die ORDER BY-Klausel ein. In der Abbildung oben sehen Sie die im Mapping FilterDatabaseRecords.mfd definierte WHERE- und ORDER BY-Klausel (dieses Einstellungen werden weiter unten beschrieben). Weitere Beispiele finden Sie unter Erstellen von WHERE- und ORDER BY-Klauseln.

 

Bereitstellen von Parametern in SQL WHERE/ORDER-Komponenten

In der SQL WHERE/ORDER-Komponente aus dem Mapping FilterDatabaseRecords.mfd ist die folgende WHERE-Klausel definiert:

 

last_name LIKE :sqlparam

 

wobei:

 

"last_name" bezieht sich auf den Namen des Datenbankfelds in der verbundenen Tabelle.

"LIKE" ist ein SQL-Operator.

":sqlparam" erstellt im Mapping einen Parameter namens "sqlparam".

 

Parameter in SQL WHERE/ORDER-Komponenten sind optional; Sie sind nützlich, wenn Sie über das Mapping einen Wert an die WHERE-Klausel übergeben möchten. Ohne Parameter hätte die obige WHERE-Klausel folgendermaßen gelautet:

 

Last LIKE "M%"

 

Damit würden alle Personen, deren Nachname mit dem Buchstaben "M" beginnt, abgerufen. Um diese Abfrage noch flexibler zu gestalten, haben wir anstelle von "M%" einen Parameter hinzugefügt. Dadurch kann auch jeder andere Buchstabe aus dem Mapping bereitgestellt werden (z.B. "D", um einfach durch Änderung einer Konstante oder eines Mapping-Input-Parameters Personen, deren Nachname mit "D" beginnt, abzurufen). Der Input-Buchstabe im obigen Mapping stammt aus einer einfachen Input-Komponente namens Input. Wenn Sie auf die Titelleiste dieser Komponente doppelklicken und ihre Eigenschaften öffnen, sehen Sie, dass "m" zum Zeitpunkt des Designs als Ausführungswert angegeben wird:

mf-sql-where-06

Das SQL-Platzhalterzeichen % wird im Mapping von einer Konstante bereitgestellt und anschließend mit Hilfe der concat-Funktion mit dem Parameterwert verkettet. Dies hat den Vorteil, dass man keine SQL-Platzhalterzeichen in die Befehlszeile eingeben muss, wenn dieses Mapping in einer andere Umgebung wie MapForce Server ausgeführt wird.

 

Aussehen von SQL WHERE/ORDER-Komponenten

Beachten Sie bei SQL WHERE/ORDER-Komponenten, dass sich ihr Aussehen ändert, je nachdem welche Einstellungen darin definiert sind. Auf diese Art sehen Sie gleich direkt im Mapping, was die SQL WHERE/ORDER-Komponente tut, z.B:

 

mf-sql-where-03

Es wurde eine WHERE-Klausel definiert.

mf-sql-where-04

Es wurde eine WHERE-Klausel mit einem Parameter definiert. Der Parameter "Name" ist unterhalb des Datenelements "table/field" zu sehen.

mf-sql-where-05

Es wurde eine WHERE-Klausel mit einem Parameter definiert. Zusätzlich dazu wurde eine ORDER BY-Klausel definiert. Die Sortierreihenfolge wird durch das Sortiersymbol A-Z angezeigt.

 

Wenn Sie den Mauszeiger über die Titelleiste von SQL WHERE/ORDER platzieren, wird ein Popup-Fenster mit den verschiedenen definierten Klauseln angezeigt.

© 2015-2021 Altova GmbH