«

»

Nov 05

Print this Post

Usando um datasource padrão

Problema:

Voce quer definir um datasource padrão para todas as queries em vez de especificar o atributo “datasource” em todas as chamadas da tag <cfquery>.

Solução:

O ColdFusion 9 introduziu a possibilidade de se criar um datasource padrão para uma aplicação inteira.

Explicação detalhada:

Antes da versão 9, toda tag <cfquery> tinha que ter o atributo datasource que especificava qual datasource a ser usado pelo ColdFusion ao executar uma determinada query.

Por exemplo:


<cfquery datasource="wine" name="qGetWine">
     SELECT * FROM tbl_wine 
</cfquery>

A query acima selecionaria todos os registros da tabela tbl_wine no database que foi especificado no atributo datasource. Uma maneira de se contornar isso, seria colocar o datasource numa variável do escopo application e então usar essa variável no lugar do valor hardcoded.

A mesma query acima, usando esse método, ficaria assim:


<cfquery datasource="#application.dsn#" name="qGetWine">
     SELECT * FROM tbl_wine 
</cfquery>

Com o ColdFusion 9 tudo que se tem de fazer, é definir a variável datasource no Application.cfc:


<cfcomponent>
<cfset this.name = "wineDB" />
<cfset this.datasource = "wine">
</cfcomponent>

Agora, por termos definido essa variável, a aplicação não precisa referenciar o atributodatasource quando usar a tag <cfquery>. O datasource wine agora será usado por padrão se outro datasource não for especificado. Esse datasource tambem será utilizado com a tag<cfstoredproc>.

Então, o exemplo acima se torna:


<cfquery name="qGetWine">
     SELECT * FROM tbl_wine 
</cfquery>

Essa nova “feature” vai nos economizar bastante tempo.

by Kevin Schmidt
Versão em inglês: Adobe ColdFusion Cookbook

Permanent link to this article: http://ensina.me/coldfusion/usando-um-datasource-padrao/

Leave a Reply