«

»

Dec 07

Print this Post

Query of queries com cfscript

Problema:

Como posso criar uma thread safe query of queries usando somente cfscript?

Solução:

Podemos agora facilmente realizar essa tarefa usando as funções de query baseadas em script do ColdFusion 9.

Explicação detalhada:

Em ColdFusion 9, agora existe suport para queries com base em script. Não apenas agora podemos executar queries em cfscript, mas tambem queries of queries. Isso tambem usa o escopo local para tornarem as queries thread safe. Este exemplo mostra com fazer isso chamando um CFC.

Código CFM para chamar o CFC:

<cfscript>
     theQryObj = CreateObject('component', 'qryExamples');  
     writedump(theQryObj.doRunQuery());
</cfscript>


Código CFC (qryExamples.cfc):

component  output="false"
{
     // dsn for cfc
     this.DSN = 'yourDSN';
     public any function doRunQuery()
     output="false"
     {
          // run query
          local.myQry = new Query(datasource="#this.DSN#",
          sql='select * from myTable').execute();
          // set local var to result of 1st query
          local.qry1Result = local.myQry.getResult();
          // create new query object
          local.qoq = new Query();
          // set attribute of new query object to be result of first query
          // the attribute of "QoQsrcTable" is arbortrary.  It can be anything you want.
          local.qoq.setAttributes(QoQsrcTable = local.qry1Result);
          // use previously set attribute as table name for QoQ and set dbtype = query
          local.qry2Result = local.qoq.execute(sql="select * from
          QoQsrcTable where someColumn = 'someValue'", dbtype="query");
          // return result
          return local.qry2Result.getResult();
     }
}

by Dave Ferguson

Versão em inglês: Adobe ColdFusion Cookbook


 

Permanent link to this article: https://ensina.me/coldfusion/query-of-queries-com-cfscript/

Leave a Reply