sql >> Database teknologi >  >> RDS >> Oracle

Klassisk ASP kalder Oracle-lagret procedure med OraOleadb-driver

Ifølge denne side , parametertype adVariant (dvs. 12) understøttes ikke af ADO.

Du bør bruge konstanter for at gøre din kode mere læsbar, f.eks.

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)

Prøv måske denne:

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

Numeriske parametre kræver ikke en størrelsesværdi.

Du bør også prøve at bruge parametertypen adDate i stedet for at konvertere datoerne til strengværdier.

Du skal fjerne anførselstegnene, når du bruger bind-parameteren, dvs. brug blot theSubmittedDt = submitted_date i stedet for theSubmittedDt = "'" & submitted_date & "'" .



  1. hvordan man kun viser kolonneværdi én gang, hvis den gentages og er tom, indtil der kommer en anden værdi i sql

  2. Hvordan laver jeg en rækkegenerator i MySQL?

  3. Søg efter rækkevidde Latitude/Længdegrad koordinater

  4. Tvetydig spalte i INNER JOIN-erklæring