Forum Doku Wiki Blog

Forumsarchiv 2005, Januar
stored procedure call mit asp

archivierte Beiträge lesen

  1. (ASP) stored procedure call mit asp von volker, 20. 01. 2005, 17:29

stored procedure call mit asp

Der folgende Beitrag wurde am 20. 01. 2005, 17:29 Uhr von volker veröffentlicht.

hallo zusammen,

ich stehe vor dem problem aus einer asp-seite eine stored procedure einer mssql-datenbank ausführen zu müssen. ich hab noch nie was mit asp gemacht, fische also etwas planlos in der gegend rum...

anyway, hier ist die deklaration der parameter in der stored procedure:
------------------------------------------
CREATE PROC hvs_zellcodierung
       @L_STRASSE       varchar(50)
      ,@L_PLZ           varchar(6)
      ,@L_ORT           varchar(30)
      ,@L_HSNR          varchar(5)
      ,@L_DEPOT         varchar(5)   output
      ,@L_DEPOTNAME     varchar(20)  output
      ,@L_TEZE          varchar(4)   output
      ,@L_FCODE         varchar(2)   output
      ,@L_VZEIT         int          output
-------------------------------------------
es gibt also vier input- und fünf output-parameter. oder einfacher gesagt, die prozedur erwartet strasse, plz, ort und hausnummer als eingabe und liefert dafür depot, depotname, teze, fcode und vzeit zurück.


hier ist die belegung der parameter in der asp-seite:
-----------------------------------------------------
...

   cmd.Parameters.Append cmd.CreateParameter("@L_DEPOT", adVarChar,  adParamReturnValue, 5, "")
   cmd.Parameters.Append cmd.CreateParameter("@L_DEPOTNAME", adVarChar,  adParamReturnValue, 20, "")
   cmd.Parameters.Append cmd.CreateParameter("@L_TEZE", adVarChar,  adParamReturnValue, 4, "")
   cmd.Parameters.Append cmd.CreateParameter("@L_FCODE", adVarChar,  adParamReturnValue, 2, "")
   cmd.Parameters.Append cmd.CreateParameter("@L_VZEIT", adInteger,  adParamReturnValue, 1, 1)

   cmd.Parameters.Append cmd.CreateParameter("@L_STRASSE", adVarChar, adParamInput, 50, "rilkestrasse")
   cmd.Parameters.Append cmd.CreateParameter("@L_PLZ", adVarChar, adParamInput, 6, "73728")
   cmd.Parameters.Append cmd.CreateParameter("@L_ORT", adVarChar, adParamInput, 30, "Esslingen")
   cmd.Parameters.Append cmd.CreateParameter("@L_HSNR", adVarChar, adParamInput, 5, "2")

   cmd.Execute
...
-------------------------------------------------------------------
(die direkte zuweisung von werten dient erstmal zum testen)




ich erhalte folgende fehlermeldung:
-------------------------------------------------------------------
Microsoft OLE DB Provider for ODBC Drivers Fehler "80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]Der formale @L_STRASSE-Parameter wurde als OUTPUT definiert, der tatsächliche Parameter jedoch nicht als OUTPUT deklariert.

/test3.asp, line 27
--------------------------------------------------------------------



ich verstehs nicht. wo bitte wird @L_STRASSE als output-parameter deklariert??? ausserdem: wenn ich die prozedur von hand auf der shell ausführe gibts keine probleme.
kann von euch jemand damit was anfangen?

gruss aus berlin, volker

stored procedure call mit asp

Der folgende Beitrag wurde am 20. 01. 2005, 17:53 Uhr von Frank (no reg) veröffentlicht.

Hi,

jeder hat mal angefangen :-)

Eine T-SQL SP hat _IMMER_ _NUR_ _EINEN_ ReturnValue. Du hast die ParameterDirection mit adParamReturnValue  angegeben. Da sollte adParamOutput stehen.

> ... ich verstehs nicht. wo bitte wird @L_STRASSE als output-parameter deklariert???

evt. hier:  (wenn's da auch drin stehen würde)

Sicher dass du die Bereiche copy&past so eingeführt hast, wie sie auch _ausgeführt_ werden? Nicht dass da der Hund im Verborgenem liegt.

>       ,@L_DEPOT         varchar(5)   output
>       ,@L_DEPOTNAME     varchar(20)  output
>       ,@L_TEZE          varchar(4)   output
>       ,@L_FCODE         varchar(2)   output
>       ,@L_VZEIT         int          output


Das ist auch richtig so für die Definition der SP, weil sonst kommst du an die Daten ja nicht wieder ran. Allerdings war dein ADO Code falsch (falsche Parameter-Richtungsangabe).

HTH, Ciao, Frank

stored procedure call mit asp

Der folgende Beitrag wurde am 21. 01. 2005, 10:01 Uhr von volker veröffentlicht.

hi frank,

leider ändert sich nichts wenn ich die rückgabewerte als adParamOutput definiere.

> Sicher dass du die Bereiche copy&past so eingeführt hast, wie sie auch _ausgeführt_ werden?
ja, ganz sicher. wenn du lust hast kann ich gerne auch mal den gesamten stored procedure- und asp-code posten.

hast du evtl. noch ein andere idee?

gruss aus berlin, volker

stored procedure call mit asp

Der folgende Beitrag wurde am 21. 01. 2005, 11:39 Uhr von MelanieK veröffentlicht.

hallo,

> ich verstehs nicht. wo bitte wird @L_STRASSE als output-parameter deklariert??? ausserdem: wenn ich die prozedur von hand auf der shell ausführe gibts keine probleme.

Die Parameter auf der ASP Seite muessen in exakt der gleichen Reihenfolge stehen wie in der StoredProc.
Die Namen der Parameter sind hierbei unerheblich, MSSQL kriegt als erstes einen ReturnValue (@L_Depot) geliefert, versucht das fuer @L_Strasse in der Stored Proc zu verwenden, und wirft dann natuerlich einen Fehler aus.

Gruss,
Melanie

stored procedure call mit asp

Der folgende Beitrag wurde am 21. 01. 2005, 12:28 Uhr von volker veröffentlicht.

hi melanie,

> Die Parameter auf der ASP Seite muessen in exakt der gleichen Reihenfolge stehen wie in der StoredProc.

argh!!! da hätte ich selbst drauf kommen können. du hast mir den tag gerettet, 1000 dank dafür!

gruss aus berlin, volker

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4