下面在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和查询名称的字符串来传递,因为它没有一个构造函数,只需要一个结果。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top