Los siguientes trabajos finos en CFMX 7 y CF8, y Me asumir CF9 así:¿Cómo se convierte desde un conjunto de resultados Java a una consulta ColdFusion en Railo?
<!--- 'conn' is a JDBC connection --->
<cfset stat = conn.createStatement() />
<cfset rs = stat.executeQuery(trim(arguments.sql)) />
<!--- convert this Java resultset to a CF query recordset --->
<cfset queryTable = CreateObject("java", "coldfusion.sql.QueryTable")>
<cfset queryTable.init(rs) >
<cfset query = queryTable.FirstTable() />
Esto crea una declaración usando un driver JDBC, ejecuta una consulta en contra de ella, poniéndola en un conjunto de resultados de Java, y luego se crea una instancia de coldfusion.sql.QueryTable, pasa el objeto resultante de Java y se invoca queryTable.FirstTable(), que devuelve un conjunto de resultados de ColdFusion real (para cfloop y similares).
El problema viene con una diferencia en la implementación de Railo. La ejecución de este código en Railo arroja el siguiente error: No se encontró el Constructor correspondiente para coldfusion.sql.QueryTable (org.sqlite.RS).
He abandonado el objeto Railo java y no veo init() entre los métodos. ¿Me estoy perdiendo algo simple? Me encantaría que esto funcione en Railo también.
Tenga en cuenta: Estoy haciendo una conexión sin DSN a una base de datos SQLite. Entiendo cómo configurar un origen de datos de CF. Mi único inconveniente en este punto es hacer la traducción de un conjunto de resultados de Java a una consulta de Railo.
Esto puede ser una pregunta tonta, pero ¿por qué no utiliza una fuente de datos común de ColdFusion y '' para crear un resultado de consulta? –
Tomalak
Ver: http://www.coldfusionjedi.com/index.cfm/2009/9/24/Hooking-up-ColdFusion-and-SQLite – Tomalak
Eso es probablemente porque QueryTable es una interfaz en Railo. Entonces no puedes instanciarlo. (Es una clase concreta en Adobe CF). No estoy seguro de qué clase concreta utiliza Railo para las consultas, o si es similar a QueryTable en Adobe CF. Pero, como se mencionó, ¿hay una razón por la que no puede usar una consulta regular? – Leigh