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