Announcement

Collapse
No announcement yet.

Resultset als Rückgabewert in Stored Procedure

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

  • Resultset als Rückgabewert in Stored Procedure

    Hallo,

    bin noob was T-SQL angeht und möchte über eine Stored Procedure aus einer SQL Server 2005 DB den Inhalt einer Tabelle auslesen. habe folgende SP erstellt, bekomme aber kein Resultset sondern eine Integer-Variable als Rücggabewert. Was mache ich falsch?

    Hoffe mir kann jemand helfen.

    So habe ich SP erstellt...

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    CREATE PROCEDURE GetCustomer

    AS

    SELECT * FROM [TestDB].[dbo].Fleet Card Export Customer

    GO

    Danke und Gruß

    Stefan

    PS: Muss vielleicht noch hinzufügen, dass ich bisher nur direkt im SQL Manager getsetet habe, da die Anwendung noch nicht existiert.

  • #2
    Seht eigentlich ganz gut aus, das einzige was mir einfällt sind die [] klammer's bei der Tabelle, also

    PHP Code:
    SELECT FROM [TestDB].[dbo].[Fleet Card Export Customer

    Comment


    • #3
      Hallo,

      die Klammern habe ich wahrscheinlich unbewusst weg gelassen, weil ich den Code noch cleanen musste.

      Dann stellt sich für mich aber die Frage, ob die SP vielleicht soch funktioniert aber mir der SQL Manager das falsche Ergebnis zeigt oder ich das Ergebnis falsch interpretiere.

      Aber bei den Parametern steht eigentlich ganz klar, das diese Procedur einen Integerwert zurück gibt.

      Komme an der Stelle nicht weiter.

      Vielleicht fällt ja noch jemand etwas ein.

      Gruß Stefan

      Comment


      • #4
        Hallo,

        das folgende Beispiel liefert sowohl eine Ergebnismenge als auch den numerischen Rückgabewert 1 zurück. Es ist immer eine Frage, wie der Client die Stored Procedure aufruft:

        Code:
        USE tempdb
        GO
        
        CREATE TABLE Test
        (
          id   INT        NOT NULL IDENTITY PRIMARY KEY,
          wert VARCHAR(9) NOT NULL
        )
        GO
        INSERT INTO dbo.Test (wert) VALUES ('Test 1');
        INSERT INTO dbo.Test (wert) VALUES ('Test 2');
        GO
        
        CREATE PROCEDURE spTest
        AS
          SELECT * FROM dbo.Test
        RETURN 1
        GO
        
        EXEC spTest

        Comment


        • #5
          Wenn es sich bei diesem Integer-Wert um die Anzahl der Datensätze handelt, die das select zurückgeben würde (was ich mal vermute), dann lässt sich das ganz leicht lösen: als erste Zeile in der stored proc "SET NOCOUNT ON" reinschreiben (natürlich ohne Hochkommas).

          bye,
          Helmut

          Comment


          • #6
            Hallo,

            erstmal danke..

            also wenn ich das recht überblicke, ist die SP von mir eigentlich richtig, aber ich rufe die SP nicht richtig auf. Muss das mal mit einer externen Applikation testen.

            Werde mich wieder melden.

            Gruß Stefan

            Comment

            Working...
            X