webForumDet fria alternativet

anropa en SP

ASPur ASP

3 svar · 278 visningar · startad av Jaar

JaarMedlem sedan juli 2001434 inlägg
#1

Försöker anropa min storeprocedure, men det vill sig inte

  sql = "{ ? = call returavtalrad(?,?,?,?) }"
  set cmd = Server.CreateObject("ADODB.Command") 
  cmd.ActiveConnection = OBJdbConnection
  cmd.commandText = sql
  cmd.commandType = adCmdStoredProc

  cmd.Parameters.Append cmd.CreateParameter("retval", adInteger, adParamReturnValue)

  cmd.Parameters.Append cmd.CreateParameter("@radid", adVarChar, adParamInput, 40, Request.Form("radid")(i))
  cmd.Parameters.Append cmd.CreateParameter("@returdatum", adDate, adParamInput, ,Request.Form("returdatum")(i))
  cmd.Parameters.Append cmd.CreateParameter("@returantal", adInteger, adParamInput, ,Request.Form("antal")(i))
  cmd.Parameters.Append cmd.CreateParameter("@lagerplats", adVarChar, adParamInput, 7,Request.Form("arbplats")(i))

  cmd.execute

  retValue = cmd("retval")
  Response.write retValue
  
  Set cmd = nothing

Felmeddelande:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
Det har inte angetts något värde för en eller flera nödvändiga parametrar.
/proflex/modifyavtal.asp, line 132  (cmd.execute raden)

Alla parametrar är ju knutna och det är rätt mot databasen

När jag sätter sql = "returavtalrad" så funkar det. Men grejjen är att jag måste modifiera en av parametrarna som skickas in (en Oracle rowid som måste köras chartorowid på)

Min sql kommer senare att behöva se ut så här
sql = "{ ? = call returavtalrad( charToRowid(?),?,?,?) }"

Men det är ett senare problem. Det första är att kunna anropa den över huvudtaget på det sättet...

Nnå som har nån smart idé om vad det kan vara

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Använd adCmdText istf adCmdStoredProc

JaarMedlem sedan juli 2001434 inlägg
#3

Tack, det var exakt det som var felet. Nu funkar allt felfritt :D

JaarMedlem sedan juli 2001434 inlägg
#4

Nytt problem i samma andra. Som jag skrev så ska jag slänga på en charToRowid på anropet.

Jag trodde det bara var o ändra till

sql = "{ ? = call returavtalrad( charToRowid(?),?,?,?) }"

Men tydligen inte. ASP klagar på att charToRowid inte finns

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Oracle][ODBC][Ora]ORA-04043: objektet chartorowid finns inte 
/proflex/modifyavtal.asp, line 128

Motsvarande kod i delphi eller liknande fungerar. Är det någon begränsning i ADO eller?

139 ms totalt · 3 externa anrop · v20260731065814-full.b2af184d
135 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)