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();
}
}
Versão em inglês: Adobe ColdFusion Cookbook
0 responses to “Query of queries com cfscript”