以下在 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(),它返回一个实际的冷融合结果集(用于 cfloop 等)。
问题在于Railo 的实现方式有所不同。在 Railo 中运行此代码会返回以下错误:找不到 Coldfusion.sql.QueryTable(org.sqlite.RS) 的匹配构造函数。
我已经转储了 Railo java 对象,并且在方法中看不到 init() 。我错过了一些简单的东西吗?我也很想在 Railo 中使用它。
请注意:我正在与 SQLite 数据库进行无 DSN 连接。我了解如何设置 CF 数据源。在这一点上,我唯一的问题是将 Java 结果集转换为 Railo 查询。