CFSTOREDPROC | |
説明
サーバーデータベースのストアードプロシージャを実行します。CFSTOREDPROC タグを使用すると、データベース接続情報の指定や、ストアードプロシージャの識別が行えます。 |
|
カテゴリ
データベース操作タグ | |
シンタックス<cfstoredproc procedure = "procedure name" dataSource = "ds_name" username = "username" password = "password" blockFactor = "blocksize" debug = "yes"、"no" returnCode = "yes"、"no"> result = "result_name" |
|
関連項目
cfinsert、cfqueryparam、cfprocparam、 cfprocresult、 cftransaction、cfquery、cfupdate、『ColdFusion MX 開発ガイド』の第13章の「ColdFusion アプリケーションの設計と最適化」 の「データベース使用の最適化」 |
|
ヒストリ
ColdFusion MX 7: result 属性が追加されました。 ColdFusion MX: connectString、dbName、dbServer、dbtype、provider、および providerDSN 属性は使用禁止になりました。ColdFusion 5 よりも後のリリースでは、これらは機能せず、エラーを引き起こす可能性があります。ColdFusion MX では、Type 4 JDBC ドライバを使用しています。
|
|
使用方法
このタグは、データベースのストアードプロシージャを呼び出すために使用します。このタグ内で、次のように cfprocresult タグおよび cfprocparam タグをコーディングします。
returnCode = "Yes" に設定すると、このタグによりストアードプロシージャのステータスコードを保持する変数 prefix.statusCode が設定されます。ステータスコードの値は DBMS によって異なります。コード値の意味については、DBMS のドキュメントを参照してください。 このタグでは、変数 prefix.ExecutionTime が設定されます。この変数には、ストアードプロシージャの実行時間がミリ秒単位で指定されます。 prefix の値は、cfstoredproc か、または result 属性を指定した場合はその属性で指定される値です。result 属性は、複数のページから同時に呼び出される可能性があるストアードプロシージャについて、一方の呼び出しの結果が他方の呼び出しの結果を上書きしないようにするための方法を提供します。たとえば、result 属性を myResult と指定した場合は、myResult.ExecutionTime として ExecutionTime にアクセスします。それ以外の場合は、cfstoredproc.ExecutionTime としてアクセスします。 このタグは、ストアードプロシージャとその使用方法について十分に理解してから実装してください。 次の例では、Sybase ストアードプロシージャを使用しています。Oracle 8 または 9 のストアードプロシージャの例については、cfprocparamを参照してください。 |
|
例<!--- この参照専用の例では、3 つの結果セットを返す Sybase ストアードプロシージャを実行します。必要なの は、そのうち 2 つの結果セットです。このストアードプロシージャは、ステータスコードと出力パラメータを 1 つ返します。それらをこの例で表示します。パラメータには名前指定表記を使用します。 ---> <!--- <cfstoredproc procedure = "foo_proc" dataSource = "MY_SYBASE_TEST" username = "sa" password = "" dbServer = "scup" dbName = "pubs2" returnCode = "Yes" debug = "Yes"> <cfprocresult name = RS1> <cfprocresult name = RS3 resultSet = 3> <cfprocparam type = "IN" CFSQLType = CF_SQL_INTEGER value = "1" dbVarName = @param1> <cfprocparam type = "OUT" CFSQLType = CF_SQL_DATE variable = FOO dbVarName = @param2> </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> ---> |
PROCEDURE | |
必須 | |
データベースサーバー上のストアードプロシージャの名前です。 |
DATASOURCE | |
必須 | |
ストアードプロシージャが含まれているデータベースをポイントするデータソースの名前です。 |
USERNAME | |
オプション | |
データソースセットアップのユーザー名よりも優先されます。 |
PASSWORD | |
オプション | |
データソースセットアップのパスワードよりも優先されます。 |
BLOCKFACTOR | |
オプション | |
Default value: "1"
サーバーから一度に取得する行の最大数です。値の範囲は 1 ~ 100 です。 |
DEBUG | |
オプション | |
Default value: "No"
|
RETURNCODE | |
オプション | |
Default value: "No"
|
RESULT | |
オプション | |
cfstoredproc が statusCode 変数および ExecutionTime 変数を返す構造体の名前を指定します。指定すると、その値が接頭辞として cfcfstoredproc の代わりに使用され、これらの変数にアクセスするときに使われます。詳細については、「使用方法」を参照してください。 |