sql >> Databasteknik >  >> RDS >> Oracle

Klassisk ASP som anropar Oracle lagrad procedur med OraOleadb Driver

Enligt denna sida , parametertyp adVariant (dvs. 12) stöds inte av ADO.

Du bör använda konstanter för att göra din kod mer läsbar, t.ex.

Const adUseClient = 3
Const adOpenStatic = 3
Const adCmdText = 1
Const adCmdStoredProc = 4

Const adVarChar = 200 
Const adNumeric = 131 
Const adChar = 129
Const adBigInt = 20 
Const adInteger = 3

Const adParamInput = 1
Const adParamOutput = 2
Const adParamInputOutput = 3
Const adParamReturnValue = 4

cmd.Parameters.Append cmd.CreateParameter("theAccountId", adVarChar, adParamInput, , Request.Form ("aid"))
cmd.Parameters.Append cmd.CreateParameter("theAwardId", adNumeric, adParamInput, , award_id)
cmd.Parameters.Append cmd.CreateParameter("theDueDate", adVarChar, adParamInput, 100, theDueDt)
cmd.Parameters.Append cmd.CreateParameter("theSubmittedDate", adVarChar, adParamInput, 100, theSubmittedDt)
cmd.Parameters.Append cmd.CreateParameter("theReportDescription", adVarChar, adParamInput, 100, theReportDesc)
cmd.Parameters.Append cmd.CreateParameter("theFormId", adVarChar, adParamInput, 100, theFrmId)
cmd.Parameters.Append cmd.CreateParameter("theReturnCode", adNumeric, adParamOutput)

Kanske prova den här:

cmd.CommandType = adCmdText
cmd.CommandText = "{CALL deadlines_summary.PR_SUMMARY_IN(?,?,?,?,?,?,?)}"

Numeriska parametrar kräver inget storleksvärde.

Du bör också försöka använda parametertypen adDate istället för att konvertera datumen till strängvärden.

Du måste ta bort citattecken när du använder bindningsparametern, d.v.s. använd helt enkelt theSubmittedDt = submitted_date istället för theSubmittedDt = "'" & submitted_date & "'" .



  1. Finns det något sätt att ta bort en rad från mysql efter en viss tid räknat från infogningstiden

  2. Hur gör man dejtmatematik som ignorerar årtalet?

  3. Hur man låter Android App kommunicera med extern MySQL db

  4. kedja går tillbaka till måltabellen