Return-Wert in der gespeicherten Prozedur in SQL Server

Ich versuche, eine SQL Server gespeicherte Prozedur mit ASP:

ALTER  PROCEDURE [dbo].[user_insert]
    @firstName NVARCHAR(50) ,
    @lastName NVARCHAR(50) ,
    @cityid INT ,
    @email NVARCHAR(100) ,
    @password NVARCHAR(12) ,
    @Affiliate INT
AS 
    BEGIN
        DECLARE @index1 INT
        SET @index1 = 0                      
        IF ( NOT EXISTS ( SELECT    * FROM      dbo.tbl_users
                          WHERE     user_email = @email )  ) 
            BEGIN                                  
                INSERT  INTO dbo.tbl_users
                        ( user_first_name ,
                          user_last_name ,
                          city_id ,
                          user_email ,
                          user_password ,
                          Affiliate_id
                        )
                VALUES  ( @firstName ,
                          @lastName ,
                          @cityid ,
                          @email ,
                          @password ,
                          @Affiliate
                        )
                SET @index1 = ( SELECT  @@IDENTITY
            END
        RETURN @index1 
    END

und die ASP ist

Set oCmd = Server.CreateObject("ADODB.Command")
oCmd.ActiveConnection = conn
oCmd.CommandText = "user_insert"
oCmd.CommandType = 4

oCmd.Parameters.Append oCmd.CreateParameter("firstName", 203, 1, 100, "1")
oCmd.Parameters.Append oCmd.CreateParameter("lastName", 203, 1, 100, "2" )
oCmd.Parameters.Append oCmd.CreateParameter("cityid", 3, 1, 2, 1)
oCmd.Parameters.Append oCmd.CreateParameter("email", 200, 1, 100, txtmail)
oCmd.Parameters.Append oCmd.CreateParameter("password", 203, 1, 12, "2" )
oCmd.Parameters.Append oCmd.CreateParameter("Affiliate", 3, 1, 3, 1)
oCmd.Parameters.Append oCmd.CreateParameter("@index1", 3, 2)
Set rs = oCmd.Execute
response.write oCmd.Parameters("@index1").Value &"<br>"
Set oCmd = Nothing

Wenn ich das SP in die SQL Server-terminal, das es funktioniert, aber wenn ich den asp-code, wenn es ein "neuer Benutzer", ich bekomme keine Wert zurückgeben "index1"

Was kann ich tun?

  • vielleicht haben Sie bereits Benutzer mit dieser E-Mail, in der Tabelle prüfen, da die SP nicht zurück/irgendetwas tun, wenn das wahr ist
  • Ich spreche kein ASP, aber im Allgemeinen ich denke, Sie brauchen, um einen parameter erstellen, der mit einem speziellen flag Bedeutung "dies ist der SP Rückgabewert parameter'. Nicht sicher über den Namen, aber wenn ich ADO in Delphi, es ist immer den Namen @RETURN_VALUE. Jemanden mit ASP-hintergrund sollte sicherlich helfen, mehr auf den Kopf.
InformationsquelleAutor user186585 | 2011-02-12
Schreibe einen Kommentar