以下は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 db への DSN レス接続を行っています。CF データソースの設定方法を理解しています。この時点での唯一の問題は、Java 結果セットから Railo クエリへの変換を行うことです。