如何在Railo中将Java结果集转换为ColdFusion查询?

Sha*_*son 8 java coldfusion jdbc railo cfml

以下在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() />
Run Code Online (Sandbox Code Playgroud)

这将使用JDBC驱动程序创建一个语句,对它执行查询,将其放入java结果集,然后实例化coldfusion.sql.QueryTable,传递Java resulset对象,然后调用queryTable.FirstTable(),返回实际的coldfusion结果集(用于cfloop等).

问题在于Railo的实施有所不同.在Railo中运行此代码会返回以下错误:找不到匹配的coldfusion.sql.QueryTable(org.sqlite.RS)构造函数.

我已经转储了Railo java对象,并且在方法中没有看到init().我错过了一些简单的事吗?我也很想在Railo工作.

请注意:我正在与SQLite数据库建立无DSN连接.我了解如何设置CF数据源.我在这一点上唯一的打嗝是从Java结果集转换为Railo查询.

Joe*_*ler 5

看看Railo源代码,我发现它railo.runtime.type.QueryImpl可能符合您的需求.它railo.runtime.type.Query在其构造函数中实现并接受ResultSet,但它似乎没有实现QueryTable.

如果这是正确的类,您将要传递ResultSet和查询名称的字符串,因为它没有只接受ResultSet的构造函数.

  • 这就是开源之美.我查看了Railo源代码,看看他们如何使用cfdocument标签生成PDF(事实证明,Railo使用的是pdf4ml). (3认同)