Thema: Delphi SP-ReturnValues

Einzelnen Beitrag anzeigen

testoli

Registriert seit: 21. Aug 2004
Ort: Köln
36 Beiträge
 
Delphi 2005 Architect
 
#1

SP-ReturnValues

  Alt 4. Jul 2005, 10:13
Datenbank: sql2000 • Zugriff über: ado
Hallo Leute,

ich habe folgende SP auf meiner SQL2000 laufen.

Delphi-Quellcode:

CREATE PROCEDURE [SP_NEW_FIRMENTYP]
   (   
       @FIRMT_ID         INT            =NULL,
      @FIRMT_BEZ         VARCHAR(30)         =NULL,
      @FIRMT_KURZ      VARCHAR(4)         =NULL,
      @RETURN_MESSAGE      VARCHAR(150)          OUTPUT,   
      @RETURN_ID         INT            OUTPUT   
   )


AS
SET NOCOUNT ON
BEGIN TRANSACTION
   BEGIN
      IF @FIRMT_ID > 0
         BEGIN
            UPDATE cs_Firmentyp
            SET
            FIRMT_BEZ      =    UPPER(LTRIM(RTRIM(@FIRMT_BEZ))),
            FIRMT_KURZ      =   UPPER(LTRIM(RTRIM(@FIRMT_KURZ))),
            MODIFIED      =   (getdate())
            WHERE
            FIRMT_ID      =    @FIRMT_ID
         END
      ELSE
         BEGIN
            INSERT into cs_Firmentyp
            (
            FIRMT_BEZ,
            FIRMT_KURZ,
            CREATED,
            MODIFIED,
            AKTIONUSER
            )
            VALUES
            (
            UPPER(LTRIM(RTRIM(@FIRMT_BEZ))),
            UPPER(LTRIM(RTRIM(@FIRMT_KURZ))),
            (getdate()),
            (getdate()),
            'ADMIN'
            )
         END
   END
   

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                  IF @@error <> 0
                     BEGIN
                        EXEC SP_GET_MESSAGE '101','D', @RETURN_MESSAGE OUTPUT
                        // Nachricht: "Datensatz konnte nicht gespeichert werden"
                        ROLLBACK TRANSACTION
                        RETURN
                     END
                  ELSE
                     BEGIN
                        EXEC SP_GET_MESSAGE '120','D',@RETURN_MESSAGE OUTPUT
                                                                //Nachricht: "Datensatz erfolgreich gespeichert!"
                        SET @RETURN_ID = @@identity
                                                                // ID: 100
                        COMMIT TRANSACTION
                        RETURN
                     END
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SET NOCOUNT OFF
GO
Wenn kein DB Error erfolgt, zieht die SP eine Nachricht aus der einer Tabelle NACHRICHT für den User, so dass der User einen Hinweis bekommt.
Gleichzeitig wird die ID des neuen Datensatzes zurückgegeben. Also werden 2 OUTPUT Parameter übergeben.

Auf meinem DataModul habe ich eine ADO-StoredProcedure Komponente. Die Parameter sind auch alle zu sehen.
Wie kann ich jetzt die Werte an die SP übergeben und als Result die Output-Parameter an zwei Labels übergeben?

Mein Klick-Event:
[/delphi]
DM.DM_Main.sp1.Parameters.Refresh;
DM.DM_Main.sp1.Parameters.ParamByName('@ID').Value := LB_ID.caption;
DM.DM_Main.sp1.Parameters.ParamByName('@FIRMT_BEZ' ).Value := TB_Wert.Text; //Bezeichnung "Lieferant"
DM.DM_Main.sp1.Parameters.ParamByName('@FIRMT_KURZ ').Value := TB_Wert.Text; // Kurzbezeichnung "LIEF"

DM.DM_Main.SP1.Active := true;
// Hier müssten jetzt die Labels mit den OUTPUT-Parametern gefüllt werden.

DM.DM_Main.TB_ADRESSTYP.Active := false;
DM.DM_Main.TB_ADRESSTYP.Active := true;
[/delphi]

Besten Dank!
Oliver
Oliver
Aller Anfang ist schwer!
  Mit Zitat antworten Zitat