| 

.NET C# Java Javascript Exception

prepared statements in groovy

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


prepared statements in groovy

turmaline - 19.08.2010 16:52
Hallo Leute,

mal zwangsläufig muss ich groovy kennenlernen. Das Aufgabe ist dabei Dateien aus einer Datenbank zu exportieren. Dabei wurde die Anfrage in zwei Teile getrennt. Im ersten Teil der Anfrage (query_documents) werden zunächst einmal allgemeine Daten abgefragt und daraus filename erstellt. Dann wird es im oldDocHome geschaut, ob eine Datei mit diesem Namen bereits existiert. Wenn ja, dann wird diese Datei einfach in docHome kopiert (statt sie aus der Datenbank zu exportieren). Wenn nicht, wird blob_data (query_blob) abgefragt und die Datei aus der Datenbank exportiert.

Es funktioniert leider nicht((( Und da ich mich mit Syntax so gut wie gar nicht auskenne, sehe ich meine Fehler nicht. Bei Ausführung bekomme ich:
No such property: blobref_id

Language: Groovy
String query_documents = """SELECT a.id id, a.version version, e.language language, e.name name, e.blobref_id blobref_id FROM ${tableuser}.attachment_entry e, ${tableuser}.attachment_entries ae, ${tableuser}.attachment a, ${tableuser}.attachment_blob b WHERE e.id = ae.attachment_entry_id AND a.id = ae.attachment_id AND e.blobref_id = b.id AND a.id > 3000 AND a.id < 3011""" logger.debug&#40;"About to query: $query_documents"&#41; sql.withStatement &#123; stmt -> //stmt.fetchSize = 10 //stmt.maxFieldSize = 30000000 //logger.debug("fetchSize=${stmt.fetchSize}, maxFieldSize=${stmt.maxFieldSize}") &#125; sql.eachRow&#40;query_documents&#41; &#123; String lang = it.LANGUAGE != null ? it.LANGUAGE : "null" String ext = getExtension&#40;it.NAME&#41; String filename = "${it.ID}.${it.VERSION}.${lang}.${ext}" &nbsp; // look for filename in olddata dir File thisFile = new File &#40;"$oldDocHome/$module", filename&#41; // if it exists copy it if &#40;thisFile.exists&#40;&#41;&#41; &#123; try &#123; FileUtils.copyFile&#40;thisFile, new File &#40;"$docHome/$module", thisFile.getName &#40;&#41;&#41;&#41;; //logger.debug("Copying of " + fileName) &#125; catch &#40;IOException e&#41; &#123; e.printStackTrace&#40;&#41;; &#125; &#125; else &#123; String query_blob = "SELECT blob_data from ${tableuser}.attachment_blob WHERE blobref_id = :id" sql.eachRow&#40;query_blob, &#91;id: blobref_id&#93;&#41; &#123; row -> writeBlob&#40;filename, row.getBinaryStream&#40;"BLOB_DATA"&#41;, module&#41;&#125; &#125; &nbsp; &#125; // for each row in query_documents

Kann mir jemand helfen?

Gruß, madlena


Re: prepared statements in groovy

Wicki - 19.08.2010 18:29
Hallo,

ich würde folgende Änderung vornehmen:

  String query_blob = "SELECT blob_data from ${tableuser}.attachment_blob WHERE blobref_id = ?"
  sql.eachRow(query_blob, [it.blobref_id]) { row ->

Gruß Wicki


Re: prepared statements in groovy

turmaline - 20.08.2010 09:07
danke das funktioniert, war noch ein fehler hier, aber das konnte hier niemand wissen ;)

Language: Groovy
String query_blob = "SELECT blob_data from ${tableuser}.attachment_blob WHERE id = ?" sql.eachRow&#40;query_blob, &#91;it.blobref_id&#93;&#41; &#123; row ->

vielen dank noch mal!!


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "prepared statements in groovy" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.