以下代码在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驱动程序创建了一个语句(statement),对其执行查询,将结果放入Java resultset中,然后实例化coldfusion.sql.QueryTable,并传递Java resultset对象,最后调用queryTable.FirstTable()方法。该方法返回一个实际的coldfusion结果集(用于cfloop等操作)。
问题在于Railo的实现方式不同。在Railo中运行此代码会导致以下错误:找不到匹配coldfusion.sql.QueryTable(org.sqlite.RS)的构造函数。
我已经转储了Railo java对象,但在方法中没有看到init()。我是否错过了一些简单的东西?我很想在Railo中使其工作。
请注意:我正在对SQLite数据库进行DSN-less连接。我知道如何设置CF数据源。目前我的唯一问题是如何将Java result set翻译成Railo查询。
<cfquery>
来创建查询结果呢? - Tomalak