CFPROCRESULT  
説明

ストアードプロシージャによって返される結果セットにクエリーオブジェクトを関連付けます。cfoutput や cftable など、他の ColdFusion タグが結果セットにアクセスするときに、このクエリーオブジェクトを使用します。このタグは、cfstoredproc タグ内にネストします。

 
カテゴリ

データベース操作タグ

 
シンタックス
<cfprocresult
   name = "query_name"
   resultSet = "1-n"
   maxRows = "maxrows">
 
関連項目

cfinsert、cfprocparam、cfquery、cfqueryparam、cfstoredproc、cftransaction、cfupdate、『ColdFusion MX 開発ガイド』の第13章の「ColdFusion アプリケーションの設計と最適化」 の「データベース使用の最適化」

 
使用方法

ストアードプロシージャによって返されるデータにアクセスできるようにするには、cfprocresult タグを 1 つ以上指定します。ストアードプロシージャによって複数の結果セットが返される場合は、resultSet 属性を使用して、ストアードプロシージャのどの結果セットを返すかを指定します。

resultSet 属性には、cfstoredproc タグのスコープ内で固有の値を指定する必要があります。結果セットを 2 回指定すると、最初の指定は 2 回めの指定によって上書きされます。

CFML では、パラメータをリファレンスによって渡す Oracle 8 および 9 の Reference Cursor タイプがサポートされます。この方法で渡されるパラメータは、1 つのアプリケーションの実行において、メモリを割り当てられたり、割り当て解除されたりします。パッケージやストアードプロシージャで Reference Cursor を使用するには、cfprocresult タグを使用します。このタグを使用すると、ColdFusion JDBC データベースドライバによって Oracle Reference Cursor が結果セットに組み込まれます。Oracle の ThinClient JDBC ドライバでは、この方法を使用できません。

 
<!--- この例では、3 つの結果セットを返す Sybase ストアードプロシージャを実行します。必要なのは、そのうち 
2 つの結果セットです。このストアードプロシージャは、ステータスコードと出力パラメータを 1 つ返します。そ
れらをこの例で表示します。パラメータには名前指定表記を使用します。 --->
<!--- cfstoredproc タグ --->
<cfstoredproc procedure = "foo_proc"
      dataSource = "MY_SYBASE_TEST"    username = "sa"
      password = ""    dbServer = "scup"    dbName = "pubs2"
      returnCode = "Yes"    debug = "Yes">
   <!--- cfprocresult タグ --->
   <cfprocresult name = RS1>
   <cfprocresult name = RS3 resultSet = 3>
   <!--- cfprocparam タグ --->
   <cfprocparam type = "IN"
      CFSQLType = CF_SQL_INTEGER
         value = "1"    dbVarName = @param1>
      
   <cfprocparam type = "OUT"    CFSQLType = CF_SQL_DATE
      variable = FOO dbVarName = @param2>
   <!--- cfstoredproc タグを閉じます。 --->
</cfstoredproc>
<cfoutput>
   出力パラメータ値 :'#foo#'<br>
</cfoutput>
<h3>結果情報</h3>
<cfoutput query = RS1>#name#,#DATE_COL#<br>
</cfoutput>
<p>
<cfoutput>
   <hr>
   <p>レコード件数 :#RS1.recordCount# <p>列:#RS1.columnList#
   <hr>
</cfoutput> 
<cfoutput query = RS3>#col1#,#col2#,#col3#<br>
</cfoutput>
<p>
<cfoutput>
   <hr>
   <p>レコード件数 :#RS3.recordCount# <p>列:#RS3.columnList#
   <hr>
   ストアードプロシージャの戻りコード :
'#cfstoredproc.statusCode#'<br>
</cfoutput>
...
NAME  
  必須
 

クエリーの結果セットの名前です。

RESULTSET  
  オプション
 
Default value: "1"

ストアードプロシージャによって複数の結果セットが返される場合に、特定の結果セットの名前を指定します。

MAXROWS  
  オプション
 
Default value: "-1 (すべて)"

結果セットに返される行の最大数です。