sql >> データベース >  >> RDS >> Oracle

OraOleadbドライバーを使用してOracleストアドプロシージャを呼び出す従来のASP

    このページ によると 、パラメータタイプadVariant (つまり、12)はADOではサポートされていません。

    コードを読みやすくするために、定数を使用する必要があります。

    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)
    

    多分これを試してみてください:

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

    数値パラメータにはサイズ値は必要ありません。

    また、パラメータタイプadDateの使用を試みる必要があります 日付を文字列値に変換する代わりに。

    bindパラメータを使用する場合は、引用符を削除する必要があります。つまり、単にtheSubmittedDt = submitted_dateを使用します。 theSubmittedDt = "'" & submitted_date & "'"の代わりに 。



    1. 労働時間を保存し、効率的に照会するための最良の方法

    2. Hibernate SQLクエリ、mysqlのTEXTデータ型の問題

    3. find_by_sqlエイリアスを使用していたとき、混乱しました

    4. 次のSELECT式で列エイリアスを使用できないのはなぜですか?