2010-02-09 3 views
8

निम्नलिखित 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 ड्राइवर का उपयोग कर बनाता है, इसके खिलाफ एक प्रश्न निष्पादित करता है, यह एक जावा resultset में डाल, और फिर coldfusion.sql.QueryTable को तत्काल किया जाता है, जावा पुनर्विक्रय ऑब्जेक्ट पारित किया जाता है, और उसके बाद क्वेरीटेबल। फर्स्टटेबल() कहा जाता है, जो एक वास्तविक ठंडे परिणाम परिणाम (cfloop और इसी तरह के लिए) देता है।

समस्या रेलो के कार्यान्वयन में एक अंतर के साथ आता है। Railo में यह कोड चलाना निम्न त्रुटि देता है: coldfusion.sql.QueryTable (org.sqlite.RS) के लिए कोई मिलान करने वाला निर्माता नहीं मिला।

मैंने रेलो जावा वस्तु को छोड़ दिया है, और तरीकों के बीच init() नहीं देखते हैं। क्या मुझे कुछ आसान याद आ रही है? मुझे रेलो में भी काम करना अच्छा लगेगा।

कृपया ध्यान दें: मैं SQLite डीबी से एक डीएसएन-कम कनेक्शन कर रहा हूं। मैं समझता हूं कि सीएफ डेटासोर्स कैसे स्थापित करें। इस बिंदु पर मेरा एकमात्र हिचकी जावा परिणाम सेट से रेलवे क्वेरी में अनुवाद कर रही है।

+0

यह एक बेवकूफ सवाल हो सकता है - लेकिन आप एक क्वेरी परिणाम बनाने के लिए नियमित ColdFusion डेटा स्रोत और '' का उपयोग क्यों नहीं करते? – Tomalak

+0

देखें: http://www.coldfusionjedi.com/index.cfm/2009/9/24/Hooking-up-ColdFusion-and-SQLite – Tomalak

+0

शायद ऐसा इसलिए है क्योंकि QueryTable Railo में एक इंटरफ़ेस है। तो आप इसे तुरंत चालू नहीं कर सकते हैं। (यह एडोब सीएफ में एक ठोस वर्ग है)। मुझे यकीन नहीं है कि कंक्रीट क्लास रेलो प्रश्नों के लिए क्या उपयोग करता है, या यदि यह एडोब सीएफ में क्वेरीटेबल के समान है। लेकिन, जैसा कि बताया गया है, क्या कोई कारण है कि आप नियमित क्वेरी का उपयोग नहीं कर सकते हैं? – Leigh

उत्तर

5

रेलो स्रोत कोड को देखते हुए, मुझे लगता है कि railo.runtime.type.QueryImpl आपकी आवश्यकताओं के अनुरूप हो सकता है। यह railo.runtime.type.Query लागू करता है और इसके निर्माता में परिणामसेट स्वीकार करता है, लेकिन ऐसा लगता है कि यह QueryTable लागू नहीं करता है।

यदि यह सही वर्ग है, तो आप एक परिणामसेट में और क्वेरी नाम के लिए एक स्ट्रिंग में पास करना चाहेंगे, क्योंकि इसमें कोई कंस्ट्रक्टर नहीं है जो केवल परिणामसेट लेता है।

+0

उसने ऐसा किया। Railo के लिए जिसके परिणामस्वरूप CFML है: \t \t \t \t \t

+3

ओपन सोर्स की सुंदरता है। मैंने रेलो स्रोत कोड को यह भी देखने के लिए देखा है कि वे cfdocument टैग का उपयोग करके पीडीएफ कैसे उत्पन्न करते हैं (यह पता चला है कि रेलो पीडीएफ 4 एमएल का उपयोग करता है)। –

संबंधित मुद्दे