名前
説明
タグのための一般的なスクリプトシンタックスとは別に、cfquery タグには代替のスクリプトがあり、QueryExecute 関数によって提供されます。この関数を使用すると、CFScript ブロックでクエリを簡単に実行できるようになります。
この関数では、名前なしパラメーターをクエリに渡すことができます。疑問符「?」をパラメーターのプレースホルダーとして使用します。パラメーターの値は、パラメーターに配列として渡す必要があります。
なお、以下の注意事項が適用されます。
- クエリパラメーターがある場合は、関数の 2 つ目の引数として渡す必要があります。これは、構造体か配列です。
- 追加の属性をクエリパラメーター(CFSQLType、リスト、区切り文字など)として指定する必要がある場合は、その列名に対して構造体として渡すことができます。
- クエリおよび datasource プロパティは、3 つ目の引数として渡されます。
Query タグは、CFQuery タグの汎用スクリプトシンタックスとは別に、ColdFusion 関数として使用することもできます。この関数を使用すると、CFScript ブロックでクエリを簡単に実行できるようになります。
シンタックス
QueryExecute(sql,params,options)
パラメーター
|
必須 |
説明 |
sql |
はい |
実行する SQL 文字列。 |
params |
いいえ |
パラメーター値の配列または構造体。 |
options |
いいえ |
クエリオプションを格納した構造体。有効な値は次のとおりです。
サポートされるクエリオプションの一覧については、<cfquery> のドキュメントを参照してください。name オプション以外のすべてのオプションがサポートされます。 |
関連項目
履歴
ColdFusion(2021 リリース):次の戻り値型を持つ属性 returnType が追加されました。
- 配列
- JSON/配列
- クエリ(デフォルト)
ColdFusion(2018 リリース):options
に値 disableAutoGenKeys が追加されました。
ColdFusion 11:この関数が追加されました。
例 1
<cfset qoptions = {result="myresult", datasource="artGallery", fetchclientinfo="yes"}> <cfset myquery = QueryExecute("select * from art where ARTID < 5", [] ,qoptions)> <cfdump var="#myQuery#" > <cfset myquery1 = QueryExecute("select * from art where ARTID < ?", [4] ,qoptions)> <cfdump var="#myQuery1#" > <cfset myquery2 = QueryExecute("select * from art where ARTID < :artid and artistid=:aid ", {artid={value=100}, aid=2} ,qoptions)> <cfdump var="#myQuery2#" >
例 2
QueryExecute ("select from Employees where empid=1"); QueryExecute("select from Employee where country=:country and citizenship=:country", {country='USA'}); QueryExecute("select from Employee where country=:country and citizenship=:country", {country={value='USA', CFSQLType='CF_SQL_CLOB', list=true, other‐queryParam_attributes}, }); QueryExecute("select from Employee where country=:country and citizenship=:country", {country='USA'}, {datasource=”cfartgallery”, cachename=”employees”}) QueryExecute ("select from Artists where artistid=? and country=?", [1, “USA”], {datasource="cfartgallery"});
例 3
次の例では、EMP_ID が 4~14 の範囲にある従業員をすべて検索し、その結果を表示します。
<cfscript> myResult=QueryExecute(("SELECT * FROM EMPLOYEES WHERE EMP_ID BETWEEN :low AND :high"),{low=4,high=14}, {datasource="cfdocexamples"}); WriteDump(myResult); </cfscript>
出力
例 4
次の例では、テーブル内のレコードのうち、特定の ID と名前を持つものを検索します。
<cfscript> myResult=QueryExecute("SELECT * FROM MYEMPLOYEES WHERE ID=:ID AND Name=:NAME",{ID="004",Name="Jill"}, {datasource="cfdocexamples"}); WriteDump(myResult); </cfscript>
出力
例 5
次の例では、営業部門の従業員のうち、勤務地がニュートンかサンフランシスコのどちらかである者をすべて検索します。
<cfscript> myResult=QueryExecute(("SELECT * FROM EMPLOYEES WHERE DEPARTMENT='Sales' AND LOCATION in (?,?)"),["ニュートン","サンフランシスコ"], {datasource="cfdocexamples"}); WriteDump(myResult); </cfscript>
出力
例 6
次の例は、disableAutoGenKeys オプションを使用したものです。
<cfscript> q=QueryExecute("Select * from art where artid=1",{}{datasource="cfartgallery", disableAutoGenKeys="false"} ); writedump(q); </cfscript>
例 7
<cfscript> cfhttp(name="myQuery", url="https://raw.githubusercontent.com/sauravg94/test-repo/master/MOCK_DATA.csv", firstrowasheaders="true", method="GET"); myResult=QueryExecute(("SELECT * from myQuery WHERE id BETWEEN :low AND :high"),{low=100,high=500},{dbtype="query"}) writeDump(myResult) </cfscript>
例 8
<cfscript> // QueryExecute 戻り値の配列 qoptions = {result="myresult", datasource="cfartgallery",returntype="array"} myquery = QueryExecute("select ARTID,ARTISTID,ARTNAME from art where ARTID < 2", [] ,qoptions); writeOutput(myquery[1].ARTID &" ") writeOutput(myquery[1].ARTISTID &" ") writeOutput(myquery[1].ARTNAME &" ") </cfscript>
例 9
<cfscript> // QueryExecute 戻り値の型 "json/array" qoptions = {result="myresult", datasource="cfartgallery",returntype="json/array"} myquery = QueryExecute("select ARTID,ARTISTID,ARTNAME from art where ARTID < 2", [] ,qoptions); record=deserializeJSON(myquery) writeOutput(record[1].ARTID &" ") writeOutput(record[1].ARTISTID &" ") writeOutput(record[1].ARTNAME &" ") writeOutput(myquery) </cfscript>
例 10
<cfscript> // QueryExecute 戻り値の型デフォルトクエリ qoptions = {result="myresult", datasource="cfartgallery"} myquery = QueryExecute("select ARTID,ARTISTID,ARTNAME from art where ARTID < 2", [] ,qoptions); record=QueryGetRow(myQuery,1) writeOutput(record.ARTID &" ") writeOutput(record.ARTISTID &" ") writeOutput(record.ARTNAME &" ") </cfscript>