QueryExecute

説明

タグのための一般的なスクリプトシンタックスとは別に、cfquery タグには代替のスクリプトがあり、QueryExecute 関数によって提供されます。この関数を使用すると、CFScript ブロックでクエリを簡単に実行できるようになります。 

この関数では、名前なしパラメーターをクエリに渡すことができます。疑問符「?」をパラメーターのプレースホルダーとして使用します。パラメーターの値は、パラメーターに配列として渡す必要があります。  

なお、以下の注意事項が適用されます。

  • クエリパラメーターがある場合は、関数の 2 つ目の引数として渡す必要があります。これは、構造体か配列です。
  • 追加の属性をクエリパラメーター(CFSQLType、リスト、区切り文字など)として指定する必要がある場合は、その列名に対して構造体として渡すことができます。
  • クエリおよび datasource プロパティは、3 つ目の引数として渡されます。

 Query タグは、CFQuery タグの汎用スクリプトシンタックスとは別に、ColdFusion 関数として使用することもできます。この関数を使用すると、CFScript ブロックでクエリを簡単に実行できるようになります。

シンタックス

QueryExecute(sql,params,options)

パラメーター

名前

必須

説明

sql

はい

実行する SQL 文字列。

params

いいえ

パラメーター値の配列または構造体。

options

いいえ

クエリオプションを格納した構造体。有効な値は次のとおりです。

  • datasource
  • cachename
  • dbtype
  • disableAutoGenKeys

サポートされるクエリオプションの一覧については、<cfquery> のドキュメントを参照してください。name オプション以外のすべてのオプションがサポートされます。

関連項目

履歴 

ColdFusion(2021 リリース):次の戻り値型を持つ属性 returnType が追加されました。

  • 配列
  • JSON/配列
  • クエリ(デフォルト)

ColdFusion(2018 リリース):options
に値 disableAutoGenKeys が追加されました。

ColdFusion 11:この関数が追加されました。

例 1

<cfset qoptions = {result=&quot;myresult&quot;, datasource=&quot;artGallery&quot;,  fetchclientinfo=&quot;yes&quot;}>

<cfset myquery = QueryExecute(&quot;select *  from art where ARTID < 5&quot;, [] ,qoptions)>
<cfdump var=&quot;#myQuery#&quot; >

<cfset myquery1 = QueryExecute(&quot;select *  from art where ARTID < ?&quot;, [4] ,qoptions)>
<cfdump var=&quot;#myQuery1#&quot; >

<cfset myquery2 = QueryExecute(&quot;select *  from art where ARTID < :artid  and artistid=:aid &quot;, {artid={value=100}, aid=2} ,qoptions)>
<cfdump var=&quot;#myQuery2#&quot; >

例 2

QueryExecute (&quot;select from Employees where empid=1&quot;);

QueryExecute(&quot;select from Employee where country=:country and citizenship=:country&quot;, {country='USA'});

QueryExecute(&quot;select from Employee where country=:country and citizenship=:country&quot;, {country={value='USA',
CFSQLType='CF_SQL_CLOB', list=true, other‐queryParam_attributes}, });

QueryExecute(&quot;select from Employee where country=:country and citizenship=:country&quot;, {country='USA'},
{datasource=”cfartgallery”, cachename=”employees”})

QueryExecute (&quot;select from Artists where artistid=? and country=?&quot;, [1, “USA”], {datasource=&quot;cfartgallery&quot;});

例 3

次の例では、EMP_ID が 4~14 の範囲にある従業員をすべて検索し、その結果を表示します。

<cfscript>
       myResult=QueryExecute((&quot;SELECT * FROM EMPLOYEES WHERE EMP_ID BETWEEN :low AND :high&quot;),{low=4,high=14},
       {datasource=&quot;cfdocexamples&quot;});
       WriteDump(myResult);
</cfscript>

出力

EMP_ID が 4~14 の範囲にあるすべての従業員
EMP_ID が 4~14 の範囲にあるすべての従業員

例 4

次の例では、テーブル内のレコードのうち、特定の ID と名前を持つものを検索します。

<cfscript>
       myResult=QueryExecute(&quot;SELECT * FROM MYEMPLOYEES WHERE ID=:ID AND Name=:NAME&quot;,{ID=&quot;004&quot;,Name=&quot;Jill&quot;},
       {datasource=&quot;cfdocexamples&quot;});
       WriteDump(myResult);
</cfscript>

出力

特定の ID と名前を持つレコード
特定の ID と名前を持つレコード

例 5

次の例では、営業部門の従業員のうち、勤務地がニュートンかサンフランシスコのどちらかである者をすべて検索します。

<cfscript>
       myResult=QueryExecute((&quot;SELECT * FROM EMPLOYEES WHERE DEPARTMENT='Sales' AND LOCATION in (?,?)&quot;),[&quot;ニュートン&quot;,&quot;サンフランシスコ&quot;],
       {datasource=&quot;cfdocexamples&quot;});
       WriteDump(myResult);
</cfscript>

出力

勤務地がニュートンかサンフランシスコの営業部門従業員
勤務地がニュートンかサンフランシスコの営業部門従業員

例 6

次の例は、disableAutoGenKeys オプションを使用したものです。

<cfscript>
     q=QueryExecute(&quot;Select * from art where artid=1&quot;,{}{datasource=&quot;cfartgallery&quot;, disableAutoGenKeys=&quot;false&quot;}
);
     writedump(q);
</cfscript>

例 7

<cfscript>
    cfhttp(name=&quot;myQuery&quot;, 
           url=&quot;https://raw.githubusercontent.com/sauravg94/test-repo/master/MOCK_DATA.csv&quot;, 
           firstrowasheaders=&quot;true&quot;,
           method=&quot;GET&quot;);
    myResult=QueryExecute((&quot;SELECT * from myQuery WHERE id BETWEEN :low AND :high&quot;),{low=100,high=500},{dbtype=&quot;query&quot;})
    writeDump(myResult)
</cfscript>

例 8

<cfscript> 
  // QueryExecute 戻り値の配列 
  qoptions = {result=&quot;myresult&quot;, datasource=&quot;cfartgallery&quot;,returntype=&quot;array&quot;} 
  myquery = QueryExecute(&quot;select ARTID,ARTISTID,ARTNAME from art where ARTID < 2&quot;, [] ,qoptions); 
  writeOutput(myquery[1].ARTID &&quot; &quot;) 
  writeOutput(myquery[1].ARTISTID &&quot; &quot;) 
  writeOutput(myquery[1].ARTNAME &&quot; &quot;) 
</cfscript>

例 9

<cfscript> 
  // QueryExecute 戻り値の型 &quot;json/array&quot; 
  qoptions = {result=&quot;myresult&quot;, datasource=&quot;cfartgallery&quot;,returntype=&quot;json/array&quot;} 
  myquery = QueryExecute(&quot;select ARTID,ARTISTID,ARTNAME from art where ARTID < 2&quot;, [] ,qoptions); 
  record=deserializeJSON(myquery) 
  writeOutput(record[1].ARTID &&quot; &quot;) 
  writeOutput(record[1].ARTISTID &&quot; &quot;) 
  writeOutput(record[1].ARTNAME &&quot; &quot;) 
  writeOutput(myquery) 
</cfscript> 

例 10

<cfscript> 
  // QueryExecute 戻り値の型デフォルトクエリ 
  qoptions = {result=&quot;myresult&quot;, datasource=&quot;cfartgallery&quot;} 
  myquery = QueryExecute(&quot;select ARTID,ARTISTID,ARTNAME from art where ARTID < 2&quot;, [] ,qoptions); 
  record=QueryGetRow(myQuery,1) 
  writeOutput(record.ARTID &&quot; &quot;) 
  writeOutput(record.ARTISTID &&quot; &quot;) 
  writeOutput(record.ARTNAME &&quot; &quot;) 
</cfscript>

 Adobe

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

新規ユーザーの場合

Adobe MAX 2025

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

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