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 |
配列の名前です。新しい列にはこの配列の要素が挿入されます。