Question

Ce qui suit fonctionne très bien dans CFMX 7 et CF8, et je suppose CF9 ainsi:

<!--- '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() />

Cela crée une instruction à l'aide d'un pilote JDBC, exécute une requête contre elle, le mettre dans un jeu de résultats Java, puis coldfusion.sql.QueryTable est instancié, passé l'objet Java resulset, puis queryTable.FirstTable () est appelée , qui renvoie un coldfusion réel de résultats (pour cfloop et analogues).

Le problème vient avec une différence dans la mise en œuvre de Railo. L'exécution de ce code Railo renvoie l'erreur suivante:. Aucun constructeur correspondant pour coldfusion.sql.QueryTable (org.sqlite.RS) trouvé

Je l'ai largué l'objet java Railo, et ne voient pas init () parmi les méthodes. Suis-je manque quelque chose de simple? J'aimerais obtenir ce travail dans Railo ainsi.

S'il vous plaît noter: Je fais une connexion sans DSN à un SQLite db. Je comprends comment mettre en place une source de données des FC. Mon seul hic à ce moment fait la traduction d'un résultat Java mis à une requête Railo.

Était-ce utile?

La solution

En regardant le code source Railo, je vois que railo.runtime.type.QueryImpl pourrait répondre à vos besoins. Elle met en œuvre railo.runtime.type.Query et accepte un ResultSet dans son constructeur, mais il ne semble pas mettre en œuvre QueryTable.

Si c'est la bonne classe, vous aurez envie de passer dans un ResultSet et une chaîne pour le nom de la requête, car il ne dispose pas d'un constructeur qui ne prend que ResultSet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top