Announcement

Collapse
No announcement yet.

Stored Procedure mit mehreren Rückgabewerten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Stored Procedure mit mehreren Rückgabewerten

    Hallo alle zusammen,
    ich hab da mal ne Frage, ich habe eine SP geschrieben an die ich 2 daten übergebe. anschließend überprüft die SP welche Monate innerhalb dieser Grenzen liegen und vergleicht sie mit weitern Angaben und es entstehen dabei immer 24 Rückgabewerte in Form von eines Betrages. Dies funktioniert zunächst ohne Fehlermeldung.
    Diese SP muss innerhalb einer anderen SP aufgerufen werden da sie für jeden Datensatz einer vorherigen SELECT Abfrage ausgeführt werden muss.

    Nun zu meinem Problem. Wie übergebe ich diese Werte an die übergeordnete Procedure, bzw. wie empfängt die übergeordnete Procedure diese Werte so dass ich sie in die entsprechende Tabelle speichern kann. (Unter gewissen Umständen müssen einige Werte auch noch einmal bearbeitet werden bevor sie abgespeichert werden können)

    Ich hoffe ihr könnt mir dabei helfen.

    MFG Dirk

  • #2
    Man kann bei einer stored proc auch Rückgabeparameter definieren
    siehe OUTPUT:

    http://technet.microsoft.com/de-de/l...6(SQL.90).aspx

    bye,
    Helmut

    Comment


    • #3
      Danke für den Tip, hab ich jetzt auch gemacht.

      Hab da aber jetzt noch ne Frage dazu, wenn diese SP aus einer anderen SP aufrufe, wie kann ich dann diese Rückgabewerte abrufen?

      Ich bin da noch noch nicht ganz dahinter gestiegen da ich mich erst seit montag mit SP's beschäftige.

      Schonmal Danke für eure Antworten.

      Comment


      • #4
        Originally posted by DGoeck View Post
        Danke für den Tip, hab ich jetzt auch gemacht.

        Hab da aber jetzt noch ne Frage dazu, wenn diese SP aus einer anderen SP aufrufe, wie kann ich dann diese Rückgabewerte abrufen?

        Ich bin da noch noch nicht ganz dahinter gestiegen da ich mich erst seit montag mit SP's beschäftige.

        Schonmal Danke für eure Antworten.
        [HIGHLIGHT="SQL"]DECLARE @Rückgabe NVARCHAR(20);
        EXEC Deine_Procedure @Rückgabe OUTPUT;
        SELECT @Rückgabe;
        [/HIGHLIGHT]

        Comment


        • #5
          also das mit der Übergabe funzt erstmal, Danke dafür.
          Ich hab jetzt das Problem, wenn ich in meiner 1. SP die 1. Select-Klausel ausführen möchte, dann kommt der Fehler:

          "Arithmetischer Überlauffehler beim Konvertieren von varchar in den numeric-Datentyp"

          Ich Poste mal den Aufruf und die SP:

          Aufruf aus dem SQL-Server:
          Code:
          EXECUTE Berechnete_Umsaetze_Aktualisieren '6','10525','1'
          Code:
          ALTER PROCEDURE [dbo].[Berechnete_Umsaetze_Aktualisieren] 
          	-- Add the parameters for the stored procedure here
          	@Unternehmen [integer],
          	@KST [varchar](10),
          	@Benutzer[decimal](18,0)
          
          AS
          BEGIN
          	declare
          	@Datab[datetime],
          	@Datbis[datetime],
          	@VNr[decimal](18,0),
          	@Gebuehr[real]
          ...
          Code:
          SELECT @VNr=Vnr, @Datab=Datum_ab, @Datbis=Datum_bis, @Gebuehr=Gebuehr  FROM Vertrag WHERE Unternehmen = @Unternehmen and Kostenstelle=@KST
          Diese Letzte Gepostete Zeile verursacht laut Meldung den besagten Fehler

          Comment


          • #6
            Alles Klar, ich hab Grade meinen Fehler erkannt, man sollte in Anleitungen immer erst lesen das der Code nur für einen Datensatz geeignet ist.

            Comment

            Working...
            X