AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SP-ReturnValues

Ein Thema von testoli · begonnen am 4. Jul 2005 · letzter Beitrag vom 4. Jul 2005
Antwort Antwort
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
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: SP-ReturnValues

  Alt 4. Jul 2005, 10:54
Hallo Oliver,

Für diese Prozedur
SQL-Code:
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   
)
könnte das so aussehen:
Delphi-Quellcode:
with DM.DM_Main.sp1 do begin
  Parameters.ParamByName('@FIRMT_ID').Value := LB_ID.caption;
  Parameters.ParamByName('@FIRMT_BEZ').Value := TB_Wert.Text; //Bezeichnung "Lieferant"
  Parameters.ParamByName('@FIRMT_KURZ').Value := TB_Wert.Text; // Kurzbezeichnung "LIEF"
  ExecProc;
  LB_MESSAGE.Caption := Parameters.ParamValues['@RETURN_MESSAGE'];
  ...
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
testoli

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

Re: SP-ReturnValues

  Alt 4. Jul 2005, 13:42


GREAT!!!!! Vielen Dank! Geht!

LG
Oliver
Oliver
Aller Anfang ist schwer!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz