| QUERYADDCOLUMN | |
| 説明
クエリーに新しい列を追加し、各行のその列に 1 次元配列の内容を挿入します。すべての列の行数が同じになるように、必要に応じてクエリー列のパディングが行われます。 |
|
| 戻り値
追加された列の列番号 |
|
| カテゴリ
クエリー関数 |
|
関数のシンタックスQueryAddColumn(query, column-name[, datatype], array-name) |
|
| 関連項目
QueryNew、QueryAddRow、QuerySetCell、『ColdFusion MX 開発ガイド』の第22章の「クエリーオブクエリーの使用」 の「列のデータタイプの管理」 |
|
| ヒストリ
ColdFusion MX 7: datatype パラメータが追加されました。 ColdFusion MX: 動作の変更 : 無効な名前の列を追加しようとするとエラーが発生します (以前のリリースでは、こうした列を追加することはできましたが、追加後にその列を参照することはできませんでした)。 |
|
| パラメータ
|
|
| 使用方法
cfquery タグで取り出したクエリーや QueryNew 関数で作成したクエリーなどのクエリーオブジェクトに列を追加できます。キャッシュされたクエリーに対して QueryAddColumn 関数を使用することはできません。この関数は、Oracle のストアードプロシージャが生成できる出力パラメータの配列からクエリーオブジェクトを生成するときに有用です。 オプションの datatype パラメータを使用することをお勧めします。このパラメータを使用しない場合、ColdFusion ではクエリーオブクエリー内のクエリーオブジェクトを使用するときに、列のデータタイプを判別する必要があります。データタイプを判別するには追加処理が必要であり、ColdFusion がデータタイプを正しく推測しない場合、エラーが発生する可能性があります。 |
|
| 例
次の例では、新しいクエリーオブジェクトを作成し、QueryAddColumn 関数を使用してクエリーオブジェクトに 3 つの列を追加して、結果を表示します。データを提供する配列のうち 2 つは残り 1 つの配列より短いため、クエリー内の対応する列には QueryAddColumn によってパディングが追加されます。 <!--- クエリーを作成します。 --->
<cfset myQuery = QueryNew("")>
<!--- 配列を作成します。 --->
<cfset FastFoodArray = ArrayNew(1)>
<cfset FastFoodArray[1] = "French Fries">
<cfset FastFoodArray[2] = "Hot Dogs">
<cfset FastFoodArray[3] = "Fried Clams">
<cfset FastFoodArray[4] = "Thick Shakes">
<!--- 配列を使用して、クエリーに列を追加します。 --->
<cfset nColumnNumber = QueryAddColumn(myQuery, "FastFood", "VarChar",
FastFoodArray)>
<!--- 2 番めの配列を作成します。 --->
<cfset FineCuisineArray = ArrayNew(1)>
<cfset FineCuisineArray[1] = "Lobster">
<cfset FineCuisineArray[2] = "Flambe">
<!--- 配列を使用して、クエリーに 2 番めの列を追加します。 --->
<cfset nColumnNumber2 = QueryAddColumn(myQuery, "FineCuisine", "VarChar",
FineCuisineArray)>
<!--- 3 番めの配列を作成します。 --->
<cfset HealthFoodArray = ArrayNew(1)>
<cfset HealthFoodArray[1] = "Bean Curd">
<cfset HealthFoodArray[2] = "Yogurt">
<cfset HealthFoodArray[3] = "Tofu">
<!--- 配列を使用して、クエリーに 3 番めの列を追加します。 --->
<cfset nColumnNumber3 = QueryAddColumn(myQuery, "HealthFood", "VarChar",
HealthFoodArray)>
<!--- 結果を表示します。 --->
<table cellspacing = "2" cellpadding = "2" border = "0">
<tr>
<th align = "left">Fast Food</th>
<th align = "left">Fine Cuisine</th>
<th align = "left">Health Food</th>
</tr>
<cfoutput query = "myQuery">
<tr>
<td>#FastFood#</td>
<td>#FineCuisine#</td>
<td>#HealthFood#</td>
</tr>
</cfoutput>
</table>
|
|
| QUERY | |
| クエリーオブジェクトの名前です。 | |
| COLUMN-NAME | |
| 新しい列の名前です。 | |
| DATATYPE | |
(オプション) 列のデータタイプです。列に追加したデータがこのタイプではない場合、または
データをこのタイプに変換できない場合、ColdFusion ではエラーが生成されます。次のデータ
タイプが有効です。
|
|
| ARRAY-NAME | |
| 配列の名前です。新しい列にはこの配列の要素が挿入されます。 | |