AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Rückgabe von VARCHAR aus StoredProcedure
Thema durchsuchen
Ansicht
Themen-Optionen

Rückgabe von VARCHAR aus StoredProcedure

Ein Thema von Norbert987 · begonnen am 1. Jan 2012 · letzter Beitrag vom 1. Jan 2012
Antwort Antwort
Norbert987

Registriert seit: 27. Nov 2003
Ort: Aachen
74 Beiträge
 
Delphi 7 Professional
 
#1

Rückgabe von VARCHAR aus StoredProcedure

  Alt 1. Jan 2012, 17:12
Datenbank: MSSQL • Version: 2008 • Zugriff über: SQL Server Management Studio 2008 R2
Hallo Zusammen,
ich wünsche euch allen ein frohes neues Jahr 2012!
Ich habe ein Probem mit der Weitergabe von Fehlermeldungen.
Der Testaufruf lautet:
Code:
DECLARE @errmsg VARCHAR;

EXEC setActivityTargetStart 'F9EAE9B7-F544-40E9-A06A-6EF52E770E6E', @errmsg OUTPUT

SELECT @errmsg


Hier wird die problematische Funktion aufgerufen, in @errmsg sollte die Fehlermeldung sein
Code:
ALTER PROCEDURE setActivityTargetStart
  @ProjectID   uniqueidentifier,
  @errmsg      VARCHAR(4000) OUTPUT
AS
BEGIN
   DECLARE @start DATETIME;


   -- prüfe auf mögliche Fehler
   EXEC pruefeAllocations @ProjectID, @errmsg;

   -- wenn keine Fehlermeldung vorliegt, starte berechnung
   -- IF @errmsg <> ''
   -- BEGIN
   --    SELECT @start = (SELECT [Start]
   --                 FROM
   --                    [RcProject].[dbo].[Project]
   --                 WHERE
   --                    ProjectID = @ProjectID);
   --       
   --    IF @start IS NULL
   --       EXEC dbo.calcStartDate @ProjectID
   --    ELSE
   --       EXEC dbo.calcTargetDate @ProjectID
   -- END;
END
GO


@errmsg wird richtig gefüllt, doch nicht richtig nach oben weitergereicht
Code:
ALTER PROCEDURE pruefeAllocations (@ProjectID uniqueidentifier, @errmsg VARCHAR(4000) OUTPUT)
AS
BEGIN
   DECLARE @actName VARCHAR(255);
   DECLARE @actDuration VARCHAR; --war eigentlich ints, allerdings wollte er die nicht selber kovertieren
   DECLARE @allDuration VARCHAR; --war eigentlich ints, allerdings wollte er die nicht selber kovertieren
   
   SET @errmsg = '';
   
   -- prüfe, ob zugewiesenen PT = Activityaufwand PT ist
   DECLARE curAlloc CURSOR FAST_FORWARD
   FOR
      SELECT act.Name
          , count(*) AS allocDuration
          , act.Duration AS Duration
      FROM
         calcResourceActivity calc
         JOIN VActivity act
           ON calc.ActivityID = act.ActivityID
      GROUP BY
         act.Name
        , act.Duration
      HAVING
         count(*) != act.Duration;
         
      OPEN curAlloc
      FETCH NEXT FROM curAlloc INTO @actName, @actDuration, @allDuration

      WHILE (@@FETCH_STATUS = 0)
      BEGIN
         SET @errmsg = @errmsg+'\nActivity '''+@actName+''' is not properly allocated ('+@actDuration+' of '+@allDuration+' allocated).';
                  
         FETCH NEXT FROM curAlloc INTO @actName, @actDuration, @allDuration
      END

   CLOSE curAlloc
   DEALLOCATE curAlloc
END
GO
Hat jemand eine Idee woran es liegt, dass ich ein NULL erhalte obwohl der String zusammengebaut wird? Ich habe es erst mittels RETURN versucht, doch kann man da nur INTs zurückgeben, entsprechend hatte ich auch nur den ersten Buchstaben in der Ausgabe.

Vielen Dank, Norbert
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#2

AW: Rückgabe von VARCHAR aus StoredProcedure

  Alt 1. Jan 2012, 21:01
Du must auch beim Aufrufen angeben, das es sich um einen OUTPUT Parameter handelt
Code:
EXEC MyProcedure @MyVar, @MyReturnVar output
  Mit Zitat antworten Zitat
Norbert987

Registriert seit: 27. Nov 2003
Ort: Aachen
74 Beiträge
 
Delphi 7 Professional
 
#3

AW: Rückgabe von VARCHAR aus StoredProcedure

  Alt 1. Jan 2012, 22:19
Top das wars. Vielen Dank!
  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 10:08 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