Gespeicherte Prozeduren mit Input und Output

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

Startseite >  Datenquellen und -ziele > Datenbanken und MapForce > Gespeicherte Prozeduren >

Gespeicherte Prozeduren mit Input und Output

In diesem Beispiel wird gezeigt, wie Sie eine Prozedur, die Input-Parameter hat und auch eine Ausgabe aus der Datenbank abruft, aufrufen. Die gespeicherte Prozedur wird in diesem Szenario ähnlich wie ein Webservice oder eine Funktion aufgerufen. Sie können damit abgerufene Daten auf jede andere von MapForce unterstützte Zielkomponente mappen.

 

Erstellen wir zuerst die gespeicherte Demo-Prozedur in der Datenbank "AdventureWorks". Führen Sie zu diesem Zweck das unten stehende Skript an der Datenbank aus. Sie können dies entweder von einem Abfragefenster von Microsoft SQL Server Management Studio aus oder direkt auf dem Register DB-Abfrage von MapForce (siehe Anzeigen und Abfragen von Datenbanken) tun. Vergewissern Sie sich in jedem Fall, dass Ihr Datenbankbenutzerkonto Rechte zum Erstellen von gespeicherten Prozeduren hat.

 

CREATE PROCEDURE Production.uspSearchProducts
  @SearchString nvarchar(50)
  ,@MaxPrice money
  ,@ComparePrice money OUTPUT
AS
BEGIN
  SET NOCOUNT ON      
  SELECT pr.[Name], pr.ListPrice FROM [Production].[Product] pr
  WHERE pr.[Name] like @SearchString AND  pr.ListPrice < @MaxPrice
 
  SET @ComparePrice = @MaxPrice
  RETURN @ComparePrice
END

 

Mit der obigen gespeicherten Prozedur wird eine Datensatzstruktur mit Produktinformationen abgerufen. Die Prozedur hat als Input zwei Parameter: einen String mit dem Produktnamen (@SearchString) und den maximalen Produktpreis (@MaxPrice). Zusätzlich zur Datensatzstruktur und dem Standardrückgabeparameter, ruft sie auch einen Output-Parameter (@ComparePrice) ab.

 

In den folgenden Schritten wird beschrieben, wie Sie ein Mapping erstellen, das von dieser Prozedur zurückgegebene Daten verarbeitet.

 

1.Stellen Sie in MapForce eine Verbindung zur Datenbank "AdventureWorks" her und fügen Sie die gespeicherte Prozedur zum Mapping hinzu, wie unter Hinzufügen von gespeicherten Prozeduren zum Mapping beschrieben. Vergewissern Sie sich, dass Ihr Datenbankbenutzerkonto Rechte zum Anzeigen und Ausführen von gespeicherten Prozeduren hat.
2.Klicken Sie neben der gespeicherten Prozedur auf die Schaltfläche Kontextmenü anzeigen mf_ic_storedproc_menu und wählen Sie den Befehl Aufruf mit Parametern einfügen. Die gespeicherte Prozedur wird nun in einer separaten Komponente im Mapping angezeigt, wobei auf der linken Seite die Input-Parameter aufgelistet sind und die rechte Seite den Rückgabe- und die Output-Parameter enthält.

mf_sp_10

3.Klicken Sie nochmals auf die Schaltfläche Kontextmenü anzeigen mf_ic_storedproc_menu  und wählen Sie Datensatzstrukturen bearbeiten, um MapForce Informationen über die Struktur der von der Prozedur zurückgegebenen Datensatzgruppe zu liefern. Daraufhin wird das Dialogfeld "Datensatzstrukturen" angezeigt.

mf_sp_11

Wenn eine gespeicherte Prozedur während des Designs aufgerufen wird, kann dies (je nach Implementierung der Prozedur) Nebenwirkungen haben. Wenn die gespeicherte Prozedur zum Zeitpunkt des Designs nicht ausgeführt werden soll, klicken Sie nicht, wie in den folgenden Schritten beschrieben, auf Ausführen, sondern definieren Sie die erwartete Datensatzstruktur im Dialogfeld "Datensatzstrukturen", indem Sie Datensatzstrukturen und deren dazugehörige Spalten manuell hinzufügen. Verwenden Sie dazu im Dialogfeld "Datensatzstrukturen" die Schaltflächen Datensatz hinzufügen oder Spalte hinzufügen.

 

4.Klicken Sie auf Input-Parameter definieren und Prozedur aufrufen. Daraufhin wird das Dialogfeld "Gespeicherte Prozedur auswerten" angezeigt.

mf_sp_12

5.Füllen Sie die Parameterwerte, wie oben gezeigt, aus und klicken Sie auf Ausführen.
6.Klicken Sie auf OK. Die Datensatzstruktur ("RS1") ist nun sowohl im Dialogfeld "Datensatzstrukturen" als auch im Mapping sichtbar.
7.Sie können zu diesem Zeitpunkt eine Zielkomponente, in die die abgerufenen Daten geschrieben werden sollen, hinzufügen. In diesem Beispiel werden die Daten in eine CSV-Datei geschrieben. Klicken Sie im Menü Einfügen auf Textdatei und fügen Sie eine CSV-Komponente zum Mapping hinzu. Nähere Informationen dazu finden Sie unter CSV und Textdateien. Ziehen Sie als nächstes die Mapping-Verbindungen, wie unten gezeigt. Beachten Sie, dass die Input-Parameter der Prozedur mittels Konstanten bereitgestellt werden. Nähere Informationen zu Konstanten finden Sie unter Hinzufügen einer Konstante zum Mapping.

mf_sp_13

Sie können nun eine Vorschau auf das Mapping anzeigen. Klicken Sie auf die Schaltfläche Ausgabe, um das Ergebnis des Mappings im Fenster Ausgabe zu sehen, z.B.:

mf_sp_14


© 2019 Altova GmbH