|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2009 Messages : 34 ![]() |
j'ai une classe java qui implémente la génération d'un PDF depuis un rapport mais lors de la compilation j'ai l'erreur:
net.sf.jasperreports.engine.JRException: Error executing SQL statement for : IdentificationDocumentPrintForm0 at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:141) at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:656) at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:588) at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1196) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:833) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:782) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:63) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402) at com.oracle.jdbc.Driver.GeneratePDF.main(GeneratePDF.java:55) Caused by: java.sql.SQLException: ORA-00900: invalid SQL statement at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:330) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:287) at oracle.jdbc.driver.T4C at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:212) at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:951) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1159) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3284) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3328) at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:135) ... 8 more Voici ma classe java: package com.oracle.jdbc.Driver; import java.io.File; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; import com.lowagie.text.pdf.PdfWriter; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JRExporterParameter; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.design.JasperDesign; import net.sf.jasperreports.engine.export.JRPdfExporter; import net.sf.jasperreports.engine.export.JRPdfExporterParameter; import net.sf.jasperreports.engine.xml.JRXmlLoader; public class GeneratePDF { private static File destFile; private static String requete_sql; public static void main(String[] args) { // - Paramètres de connexion à la base de données String url = "jdbc:oracle:thin:@192.168.200.201:1521:sipic"; String login = "sipic_web"; String password = "sipic"; Connection connection = null ; String REQUETE_SQL; REQUETE_SQL = "Select h.NUMERO_ETAT, MODELE, NBRE_PAGE, h.CODE_TRIBUNAL, h.NUM_RC, nvl(b.NBRE_PAGE_TOTAL, '0'),nvl(b.MATRICIEL, '0'), nvl(b.DOUBLON, '0') from etats_index b, etats_rc h where b.numero_etat = h.numero_etat and h.numero_etat >= 789000 and and h.numero_etat <= 790000;"; try { // - Connexion à la base Driver monDriver = new oracle.jdbc.driver.OracleDriver(); DriverManager.registerDriver(monDriver); connection = DriverManager.getConnection(url, login, password); // - Chargement et compilation du rapport JasperDesign jasperDesign = JRXmlLoader.load("F:\\iReport-3.0.0\\IdentificationDocumentPrintForm0.jrxml"); JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); // - Paramètres à envoyer au rapport Map<String, String> parameters = new HashMap<String, String>(); parameters.put("SQL", "REQUETE_SQL"); // - Execution du rapport JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection); // - Création du rapport au format PDF JasperExportManager.exportReportToPdfFile(jasperPrint, "F:\\iReport-3.0.0\\IdentificationDocumentPrintForm0.pdf"); // - Protection du rapport au format PDF // pdfExporter // pdfExporter.setParameter (JRPdfExporterParameter.IS_ENCRYPTED, Boolean.TRUE); // pdfExporter.setParameter(JRPdfExporterParameter.USER_PASSWORD, "jasper"); // pdfExporter.setParameter(JRPdfExporterParameter.OWNER_PASSWORD, "reports"); // pdfExporter.setParameter(JRPdfExporterParameter.PERMISSIONS new Integer(PdfWriter.AllowModifyContents)); // // // destFile = new File("F:\\iReport-3.0.0\\IdentificationDocumentPrintForm0.pdf"); // JRPdfExporter exporter = new JRPdfExporter(); // exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); // // exporter.setParameter( // JRPdfExporterParameter.PERMISSIONS, // new Integer(PdfWriter.AllowCopy | PdfWriter.AllowPrinting|PdfWriter.AllowScreenReaders) // ); // exporter.exportReport(); } catch (JRException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } } Avec la variable REQUETE_SQL qui récupère ma requête SQL. Merci pour l'aide |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com