Вопрос

Следующее работает нормально в CFMX 7 и CF8, и я также предполагаю CF9:

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

Это создает заявление с использованием драйвера JDBC, выполняет запрос против него, вкладывая его в Java ResultSet, а затем ColdFusion.sql.QueryTable создается, прошел объект Java Resulset, а затем QueryTable.firsttable (), который возвращает Фактический результат холодногофузия (для Cfloop и тому подобного).

Проблема возникает с разницей в реализации Railo. Запуск этого кода в Railo возвращает следующую ошибку: не найдено соответствующий конструктор для coldfusion.sql.querytable (org.sqlite.rs).

Я бросил объект Railo Java и не вижу init () среди методов. Я упускаю что -то простое? Я бы хотел, чтобы это работало и в Railo.

Обратите внимание: я делаю соединение без DSN с SQLite DB. Я понимаю, как настроить данные CF. Моя единственная сбоя на этом этапе - это перевод с результата Java, установленного на запрос Railo.

Это было полезно?

Решение

Глядя на исходный код Railo, я вижу это railo.runtime.type.QueryImpl может соответствовать вашим потребностям. Это реализует railo.runtime.type.Query и принимает результат в своем конструкторе, но, похоже, он не реализует QueryTable.

Если это правильный класс, вы захотите пройти в результате результатов и строку для имени запроса, так как у него нет конструктора, который требует только результатов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top