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 ではエラーが生成されます。次のデータ タイプが有効です。
  • Integer: 32 ビットの整数です。
  • BigInt: 64 ビットの整数です。
  • Double: 64 ビットの小数です。
  • Decimal: java.math.BigDecimal で指定される、可変長の小数です。
  • VarChar: String
  • Binary: バイト配列です。
  • Bit: ブール値 (1 = true、0 = false) です。
  • Time: Time
  • Date: 日付です。時刻情報を含めることができます。
ARRAY-NAME  
配列の名前です。新しい列にはこの配列の要素が挿入されます。