一个人如何从一个Java的ResultSet的ColdFusion查询的Railo转换?
-
19-09-2019 - |
题
下面在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结果集,然后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查询翻译。
解决方案
纵观Railo源代码,我看到railo.runtime.type.QueryImpl
可能会满足您的需求。它实现railo.runtime.type.Query
并接受在其构造一个ResultSet,但它似乎并没有实现QueryTable
。
如果这是正确的类,你要在ResultSet和查询名称的字符串来传递,因为它没有一个构造函数,只需要一个结果。
不隶属于 StackOverflow