2010-02-09 14 views
8

aşağıdaki CFMX 7 ve CF8 ince işleri, ve ben de CF9 varsaymak istiyorum: Bu JDBC sürücüsünü kullanan bir açıklama oluştururRailo'da bir Java sonuç kümesinden ColdFusion sorgusuna nasıl dönüşüm yapılır?

<!--- '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() /> 

, bir java resultset içine koyarak, buna karşı bir sorgu çalıştırır ve daha sonra, coldfusion.sql.QueryTable örneğidir, Java resulset nesnesini geçtikten sonra, gerçek bir coldfusion resultset (cfloop ve benzeri için) döndüren queryTable.FirstTable() çağrılır.

Sorun, Railo'nun uygulamasında bir farkla geliyor. Bu kodu Railo'da çalıştırmak aşağıdaki hatayı döndürür: coldfusion.sql.QueryTable (org.sqlite.RS) için eşleşen bir Oluşturucu bulunamadı.

Railo java nesnesini terk ettim ve yöntemler arasında init() öğesini göremiyorum. Basit bir şey mi eksik? Railo'da da çalışmayı çok isterim.

Lütfen dikkat: Bir SQLite db'ye DSN'siz bağlantı yapıyorum. CF veri kaynağının nasıl kurulacağını anlıyorum. Bu noktada tek hıçkırıkım, bir Railo sorgusuna ayarlanmış bir Java sonucundan çeviri yapıyor.

+0

Bu aptalca bir soru olabilir - ancak neden bir sorgu sonucu oluşturmak için normal bir ColdFusion veri kaynağı ve '' kullanmıyorsunuz? – Tomalak

+0

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

+0

Bu muhtemelen, QueryTable'ın Railo'da bir arabirim olması nedeniyle olabilir. Yani onu başlatamazsın. (Adobe CF'de somut bir sınıftır). Railo'nun sorgular için kullandığı somut bir sınıftan veya Adobe CF'de QueryTable'a benzediğinden emin değilim. Ancak, belirtildiği gibi, düzenli bir sorgu kullanamayacağın bir sebep var mı? – Leigh

cevap

5

Railo kaynak koduna bakarak, railo.runtime.type.QueryImpl'un gereksinimlerinize uyabildiğini görüyorum. railo.runtime.type.Query'u uygular ve yapıcısında ResultSet'i kabul eder, ancak QueryTable'u uyguladığı görülmez.

Bu doğru sınıfsa, yalnızca ResultSet alan bir kurucuya sahip olmadığından ResultSet ve sorgu adı için bir dize iletmek istersiniz.

+0

Bunu yaptı. Railo için elde edilen CFML şudur: \t \t \t \t \t

+3

Açık kaynağın güzelliği budur. Railo kaynak koduna bakıp cfdocument etiketini kullanarak nasıl PDF oluşturduklarını da gördüm (Railo pdf4ml kullanıyor). –