Beispiel: SELECT mit Parametern

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Datenquellen und -ziele > Datenbanken und MapForce > SELECT-Anweisungen als virtuelle Tabellen >

Beispiel: SELECT mit Parametern

In diesem Beispiel wird gezeigt, wie Sie ein MapForce-Mapping erstellen, das Daten aus einer Microsoft Access-Datenbank ausliest und in eine CSV-Datei schreibt. In dem hier beschriebenen Mapping wird eine benutzerdefinierte SELECT-Datenbankabfrage mit einem Parameter verwendet. Die SELECT-Anweisung kombiniert Daten aus mehreren Tabellen miteinander. Die Ergebnisse davon werden dem Mapping anschließend für die weitere Verarbeitung zur Verfügung gestellt.

 

Die Mapping-Datei (.mfd) zu diesem Beispiel finden Sie unter dem folgenden Pfad: <Dokumente>\Altova\MapForce2019\MapForceExamples\select-component.mfd. Sie können die Beispieldatei zuerst öffnen und einen Blick darauf werfen oder sie mit Hilfe der unten beschriebenen Schritte von Grund auf neu erstellen.

 

Zwar wird in diesem Beispiel eine Microsoft Access-Datenbank verwendet, doch ist die Vorgangsweise auch bei anderen Datenbanktypen dieselbe. Informationen zum Herstellen einer Verbindung zu anderen Datenbanken finden Sie unter Herstellen einer Verbindung zu einer Datenbank.

 

Mit dem Mapping möchten wir folgendes Ergebnis erzielen:

 

1.Wir müssen aus der Datenbank nur diejenigen Bestellungen auswählen, bei denen die Anzahl der bestellten Posten einen benutzerdefinierten Wert übersteigt. Dieser benutzerdefinierte Wert sollte dem Mapping als Parameter bereitgestellt werden. Zu diesem Zweck wollen wir eine benutzerdefinierte SELECT-Anweisung mit einem Input-Parameter erstellen.
2.Das Datumsformat in der Access-Datenbank ist JJJJ-MM-TT HH-MI-SS. Der Uhrzeitteil muss in der CSV-Datei entfernt werden, sodass das Format JJJJ-MM-TT lautet. Wir verwenden dazu die MapForce-Funktion date-from-datetime.
3.Die erzeugte CSV-Datei muss den Namen OrdersReport.csv erhalten.

 

Schritt 1: Hinzufügen der SELECT-Struktur

1.Klicken Sie im Menü Einfügen auf Datenbank.
2.Wählen Sie Microsoft Access (ADO) und befolgen Sie die Anweisungen des Assistenten, um eine Verbindung zur Datei altova-products.mdb aus dem Ordner <Dokumente>\Altova\MapForce2019\MapForceExamples\ herzustellen.

ex_select_01

3.Klicken Sie im Dialogfeld "Datenbankobjekte einfügen" auf SELECT-Anweisung hinzufügen/bearbeiten und geben Sie die folgende Abfrage ein:

SELECT *, (Quantity * UnitPrice) AS Price
FROM Orders
INNER JOIN Products
ON Orders.ProductID = Products.ProductID
WHERE Orders.Quantity > :Quantity

In dieser Abfrage wird eine JOIN-Anweisung zwischen den Tabellen Orders und Products verwendet. Sie ruft alle Felder (*) sowie einen berechneten Wert (AS Price) ab. Außerdem ist in der Abfrage in der WHERE-Klausel der Parameter :Quantity definiert.

ex_select_02

4.Klicken Sie auf SELECT-Anweisung hinzufügen.

ex_select_03

5.Klicken Sie auf OK. Die Komponente altova-products wurde nun zum Mapping-Bereich hinzugefügt.
6.Klicken Sie in der Komponente altova-products auf selectSprocButton und wählen Sie den Befehl Aufruf mit Parametern einfügen.

ex_select_04

Im Mapping steht nun eine neue Struktur (SELECT_Statement) zur Verfügung. Sie besteht aus zwei Teilen: der linke Teil liefert Input-Konnektoren und der rechte Teil liefert Output-Konnektoren. Beachten Sie, dass der linke Teil auch den zuvor definierten Parameter Quantity enthält.

ex_select_05

 

Schritt 2: Hinzufügen des Input-Parameters

1.Klicken Sie im Menü Einfügen auf Input-Komponente einfügen.
2.Geben Sie als Name "Quantity" ein.
3.Geben Sie unter Design-time-Ausführung einen Parameterwert ein, der für die Ausführung des Mappings während der Designphase verwendet werden soll (in diesem Beispiel, "2"). Nähere Informationen dazu finden Sie unter Bereitstellen von Parametern für das Mapping.

ex_select_06

Sie können den Input-Parameter nun, wie unten gezeigt, mit der Datenbankaufrufstruktur verbinden.

ex_select_07

 

Schritt 3: Hinzufügen der CSV-Zielkomponente

1.Klicken Sie im Menü Einfügen auf Textdatei.
2.Wählen Sie die Option Einfache Verarbeitung für Standard-CSV....verwenden und klicken Sie auf Weiter.
3.Klicken Sie im Dialogfeld "Komponenteneinstellungen" auf Feld anhängen und fügen Sie neun neue Felder hinzu. Es wird empfohlen, den Feldern der CSV-Datei die Namen der Felder aus der Datenbank zu geben (siehe unten). Dadurch sparen Sie später beim Ziehen der Mapping-Verbindungen Zeit. Nähere Informationen zu diesen Einstellungen finden Sie unter Definieren der CSV-Optionen.

ex_select_08

4.Erstellen Sie eine Verbindung zwischen dem result-Node der SELECT-Struktur und dem Rows-Node der CSV-Komponente.

ex_select_09

Da die meisten Felder in der CSV-Komponente denselben Namen wie ihr Datenbankäquivalent haben, werden die Mapping-Verbindungen wahrscheinlich automatisch erstellt, wenn Sie result mit Rows verbinden. Stellen Sie andernfalls sicher, dass im Menü Verbindung die Option Idente Sub-Einträge automatisch verbinden aktiv ist. Das einzige Mapping-Datenelement, das Sie manuell verbinden müssen, ist ProductID, da es in der SELECT-Struktur kein Feld mit diesem Namen gibt.

 

Schritt 4: Datumskonvertierung

Suchen Sie im Fenster "Bibliotheken" nach der Funktion date-from-datetime und ziehen Sie diese in den Mapping-Bereich. Verbinden Sie anschließend ihren Input und Output wie unten gezeigt.

ex_select_10

 

Schritt 5: Definieren des Namens der Ausgabedatei

Um als Namen der Ausgabedatei OrdersReport.csv zu definieren, doppelklicken Sie auf die CSV-Komponente und geben Sie den Wert in das Feld "Ausgabedatei" ein.

ex_select_11


© 2019 Altova GmbH