2

状況によっては、失敗した場合に -1 の結果を返す SQL ストアド プロシージャがありますが、RAISERROR コマンドを介してメッセージを返します。

BEGIN

    RAISERROR ('Error %i has occurred', 11, 1, 0)
    RETURN -1

END

cfstoredproc を使用して coldfusion 経由でこれにアクセスしています。

<cfstoredproc procedure="sp_return" datasource="myDatasource" returncode="yes">
<cfdump var="#cfstoredproc#">

ただし、返される構造には、ExecutionTime キーと StatusCode キーしか含まれていません。返されたエラー メッセージにアクセスする方法はありますか。例) ユーザーに表示する。

ありがとう、

トム

ps 「cfstoredproc」でタグ付けしますが、新しいタグを作成できません。

4

2 に答える 2

3

どのDBを使用しているかはわかりませんが、OracleではColdFusion例外を使用してOracle例外をバブルアップしています。- #cfcatch.message# と #cfcatch.detail# は、ユーザーにエコーしたいものです。

<cftry>

<cfstoredproc  procedure = "my_Proc" dataSource = "#DB#" returnCode = "No">
   <cfprocparam type="in" cfsqltype="CF_SQL_VARCHAR" variable="myvar"   value="#someval#" null="No"> 
   <cfprocresult name="my_Response">
</cfstoredproc>

<cfcatch type="any">

   <cflog file="ProcError" text="Message = #cfcatch.message# Detail= #cfcatch.detail#">

</cfcatch>
</cftry>
于 2009-12-10T17:12:09.660 に答える
1

cfprocresultを試しましたか?マニュアルページによると:

クエリオブジェクトをストアドプロシージャによって返される結果セットに関連付けます。

于 2009-12-10T10:28:09.460 に答える