كيف يحول المرء من نتائج جافا إلى استعلام ColdFusion في Railo؟

StackOverflow https://stackoverflow.com/questions/2227134

سؤال

ما يلي يعمل بشكل جيد في 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، ثم BallFusion.sql.Querytable قد مثيل، مرت كائن إعادة إصدار Java، ثم يتم استدعاء Querytable.firsttable ()، والذي يعود نتائج coldfusion الفعلية (ل cfloop وما شابه ذلك).

تأتي المشكلة مع اختلاف في تنفيذ Railo. يؤدي تشغيل هذا الرمز في Railo إلى إرجاع الخطأ التالي: لا يوجد منشئ مطابق ل ColdFusion.sql.querytable (Org.sqlite.rs).

لقد ألقيت كائن Railo Java، ولا أرى INIT () من بين الأساليب. هل أفتقد شيئا بسيطا؟ أحب الحصول على هذا العمل في Railo كذلك.

يرجى ملاحظة: أنا أقوم باتصال DSN أقل ب SQLite DB. أنا أفهم كيفية إعداد مصدر بيانات CF. يقوم HICCUP الوحيد في هذه المرحلة بالترجمة من نموذج نتائج Java إلى استعلام Railo.

هل كانت مفيدة؟

المحلول

النظر إلى شفرة المصدر railo، أرى ذلك railo.runtime.type.QueryImpl قد تناسب احتياجاتك. انها تنفذ railo.runtime.type.Query ويقبل النتائج في منشئها، لكن لا يبدو أنه ينفذ QueryTable.

إذا كانت هذه هي الفئة المناسبة، سترغب في تمرير نتائج وسلسلة لاسم الاستعلام، لأنها لا تحتوي على منشئ يأخذ نتائج فقط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top