QueryNew

説明

空のクエリー(クエリーオブジェクト)を作成します。

戻り値

指定した名前の一連の列を持つ空のクエリー、または列を持たない空のクエリー

カテゴリ

クエリー関数

関数のシンタックス

QueryNew(columnlist [, columntypelist[, rowData]])

履歴

ColdFusion(2018 リリース)アップデート 5:クエリーオブジェクトに構造体の配列として行を挿入できます。詳しくは、QueryNew 関数の機能強化を参照してください。

ColdFusion MX 7: columntypelist  パラメーターが追加されました。

ColdFusion 10:rowData パラメーターが追加されました。

関連項目

QueryAddColumnQueryAddRowQuerySetCell。『ColdFusion アプリケーションの開発』のクエリーオブクエリーのユーザーガイド列のデータ型の管理

パラメーター

パラメーター

説明

columnlist

カンマで区切った列名のリスト、または空の文字列を指定します。

columntypelist

(オプション)列のデータ型を指定する、カンマで区切ったリストです。列に追加したデータがこの型ではない場合、またはデータをこの型に変換できない場合、ColdFusion ではエラーが生成されます。次のデータ型が有効です。

  • Object:Java オブジェクトです。これがデフォルトの列データ型になります。
  • Integer:32 ビットの整数です。
  • BigInt:64 ビットの整数です。
  • Double:64 ビットの小数です。
  • Decimal:java.math.BigDecimal で指定される、可変長の小数です。
  • VarChar:文字列です。
  • Binary:バイト配列です。
  • Bit:ブール値(1 = true、0 = false)です。
  • Time:時刻です。
  • Date:日付です。
  • Timestamp:時刻と日付の情報です。
 rowData

(オプション)新しいクエリーに追加するデータを指定します。次のいずれかを指定できます。

  • 1 つのデータ行を表すキーと値のペアで構成される構造体。キーは列名、値はそのデータになります。
  • 上記の構造体の配列。複数のデータ行を追加するために使用します。
  • 配列の配列。各内部配列は データ行の値 を表し、列と同じ順序で columntypelist  パラメーターに指定されます。

例については、「使用方法」を参照してください。

使用方法

空文字列を columnlist パラメーターに指定する場合は、QueryAddColumn 関数を使用してクエリーに列を追加します。 アドビ では、オプションの columntypelist パラメーターを使用することをお勧めします。このパラメータを使用しない場合、ColdFusion ではクエリーオブクエリー内のクエリーオブジェクトを使用するときに、データ型を判別する必要があります。データ型を判別するには追加処理が必要であり、ColdFusion がデータ型を正しく推測しない場合、エラーが発生する可能性があります。 ColdFusion 10 での機能強化により、 クエリーデータを初期化できるようになりました。次の例に示すように、構造体、 構造体の配列、 1 次元または多次元の配列のいずれかを指定して、クエリーを初期化できます。

myQuery1 = queryNew("id,name","Integer,Varchar", {id=1,name="One"}); 
myQuery2 = queryNew("id,name","Integer,Varchar", 
[ 
{id=1,name="One"}, 
{id=2,name="Two"}, 
{id=3,name="Three"} 
]); 
myQuery3 = queryNew("id,name","Integer,Varchar", [ [1,"One"], [2,"Two"], [3,"Three"] ]);

次の例ではクエリーオブジェクトを作成しています。

<cfscript>
    myQuery = queryNew("id,name,amount","Integer,Varchar,Integer", 
                [ 
                        {id=1,name="One",amount=15}, 
                        {id=2,name="Two",amount=18}, 
                        {id=3,name="Three",amount=32} 
                ]); 
    writeOutput("The new query is:")
    writeDump(myQuery)
</cfscript>

出力

Query オブジェクト
Query オブジェクト

次の例では、QueryNew 関数を使用して、3 つの列がある空のクエリーを作成しています。クエリーの 2 つの行を挿入し、クエリーオブジェクトの内容およびそのメタデータを表示します。

<!--- Create a new three-column query, specifying the column data types ---> 
<cfset myQuery = QueryNew("Name, Time, Advanced", "VarChar, Time, Bit")> 

<!--- Make two rows in the query ---> 
<cfset QueryAddRow(MyQuery, 2)> 

<!--- Set the values of the cells in the query ---> 
<cfset QuerySetCell(myQuery, "Name", "The Wonderful World of CMFL", 1)> 
<cfset QuerySetCell(myQuery, "Time", "9:15 AM", 1)> 
<cfset QuerySetCell(myQuery, "Advanced", False, 1)> 
<cfset QuerySetCell(myQuery, "Name", "CFCs for Enterprise Applications", 2)> 
<cfset QuerySetCell(myQuery, "Time", "12:15 PM", 2)> 
<cfset QuerySetCell(myQuery, "Advanced", True, 2)> 

<h4>The query object contents</h4> 
<cfoutput query = "myQuery"> 
#Name# #Time# #Advanced#<br> 
</cfoutput><br> 
<br> 
<h4>Using individual query data values</h4> 
<cfoutput> 
#MyQuery.name[2]# is at #MyQuery.Time[2]#<br> 
</cfoutput><br> 
<br> 
<h4>The query metadata</h4> 
<cfset querymetadata=getMetaData(myQuery)> 
<cfdump var="#querymetadata#">

QueryNew 関数の機能強化

ColdFusion(2018 リリース)アップデート 5 では、クエリーオブジェクトへのデータ設定方法に関して QueryNew 関数の機能が強化されています。

以前のバージョンの ColdFusion では、QueryNew 関数のパラメーターを定義する際に、クエリーオブジェクトの列、列のデータ型、行データの順に定義する必要がありました。

次に例を示します。

<cfscript>
 q=queryNew("foo,bar", "", [{foo="foo"},{bar="bar"},{foo="foo1",bar="bar1"}])
 writedump(q)
</cfscript>

このアップデートでは、クエリーオブジェクトに構造体の配列として行を挿入できます。クエリーオブジェクトは、構造体のキーを列名として解釈し、適切なデータ型を想定します。

次に例を示します。

<cfscript> 
 myquery=QueryNew([ 
  {"Id":101,"Name":"John Adams","Paid":FALSE}, 
  {"Id":102,"Name":"Samuel Jackson","Paid":TRUE}, 
  {"Id":103,"Name":"Gal Gadot","Paid":TRUE}, 
  {"Id":104,"Name":"Margot Robbie","Paid":FALSE} 
 ]) 
 writedump(myquery) 
</cfscript>

上記の例では、構造体のキー Id、Name、Paid がクエリーオブジェクトの列になり、構造体の値がクエリーオブジェクトの行の値になることがわかります。

また、名前付きパラメーターを使用して、クエリーオブジェクトを作成することもできます。

次に例を示します。

data パラメーターを使用して、クエリーオブジェクトの値を構造体の配列として設定します。

<cfscript>
 mydata = queryNew(data=[
     {"id":1,"title":"Hello World"}, 
     {"id":2,"title":"How are you"}
    ]);
 writeDump(mydata);
</cfscript>

columnNames パラメーターを使用して、クエリーオブジェクトの列を作成します。

<cfscript>
 data = queryNew(columnNames="Year,Salary")
 writeDump(data);
</cfscript>

ヘルプをすばやく簡単に入手

新規ユーザーの場合

Adobe MAX 2025

Adobe MAX Japan
クリエイターの祭典

2025 年 2 月 13 日
東京ビッグサイト