【问题标题】:Jasper Reports iReport connection to MS Access DBJasper 报告 iReport 与 MS Access DB 的连接
【发布时间】:2010-08-09 22:38:27
【问题描述】:

有没有人使用 Jasper Reports iReport 成功连接到他们的 MS Access 数据库?

我正在运行 Windows XP 并下载了 North Wind .mdb 示例文件。

有人可以提供有关如何连接到该文件并开始构建查询和报告的步骤/配置文件粘贴或教程链接吗?

我在 JDBC 数据库连接向导中使用的信息:

<?xml version="1.0"?><!-- iReport connections -->
<iReportConnectionSet>
    <iReportConnection name="Empty datasource" connectionClass="com.jaspersoft.ireport.designer.connection.JREmptyDatasourceConnection">
        <connectionParameter name="records"><![CDATA[1]]></connectionParameter>
    </iReportConnection>
    <iReportConnection name="accessdb" connectionClass="com.jaspersoft.ireport.designer.connection.JDBCConnection">
        <connectionParameter name="Password"><![CDATA[]]></connectionParameter>
        <connectionParameter name="JDBCDriver"><![CDATA[com.ms.jdbc.odbc.JdbcOdbcDriver]]></connectionParameter>
        <connectionParameter name="ServerAddress"><![CDATA[C:\nwind\nwind.mdb]]></connectionParameter>
        <connectionParameter name="SavePassword"><![CDATA[false]]></connectionParameter>
        <connectionParameter name="Database"><![CDATA[nwind]]></connectionParameter>
        <connectionParameter name="Url"><![CDATA[jdbc:odbc:nwind]]></connectionParameter>
        <connectionParameter name="Username"><![CDATA[]]></connectionParameter>
    </iReportConnection>
</iReportConnectionSet>

这是我不断收到的错误:

    Exception


Message:
    java.lang.ClassNotFoundException: com.ms.jdbc.odbc.JdbcOdbcDriver
Level:
    SEVERE
Stack Trace:
com.ms.jdbc.odbc.JdbcOdbcDriver
    com.jaspersoft.ireport.designer.connection.JDBCConnection.loadDriver(JDBCConnection.java:63)
    com.jaspersoft.ireport.designer.connection.JDBCConnection.getConnection(JDBCConnection.java:126)
    com.jaspersoft.ireport.designer.connection.JDBCConnection.test(JDBCConnection.java:447)
    com.jaspersoft.ireport.designer.connection.gui.ConnectionDialog.jButtonTestActionPerformed(ConnectionDialog.java:335)
    com.jaspersoft.ireport.designer.connection.gui.ConnectionDialog.access$300(ConnectionDialog.java:43)
    com.jaspersoft.ireport.designer.connection.gui.ConnectionDialog$4.actionPerformed(ConnectionDialog.java:290)
    javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
    javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
    javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
    javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
    javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    java.awt.Component.processMouseEvent(Component.java:5488)
    javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
    java.awt.Component.processEvent(Component.java:5253)
    java.awt.Container.processEvent(Container.java:1966)
    java.awt.Component.dispatchEventImpl(Component.java:3955)
    java.awt.Container.dispatchEventImpl(Container.java:2024)
    java.awt.Component.dispatchEvent(Component.java:3803)
    java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
    java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
    java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
    java.awt.Container.dispatchEventImpl(Container.java:2010)
    java.awt.Window.dispatchEventImpl(Window.java:1778)
    java.awt.Component.dispatchEvent(Component.java:3803)
    java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:104)
    java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:153)
    java.awt.Dialog$1.run(Dialog.java:517)
    java.awt.Dialog$2.run(Dialog.java:545)
    java.security.AccessController.doPrivileged(Native Method)
    java.awt.Dialog.show(Dialog.java:543)
    java.awt.Component.show(Component.java:1300)
    java.awt.Component.setVisible(Component.java:1253)
    com.jaspersoft.ireport.designer.wizards.ConnectionSelectionVisualPanel.jButton1ActionPerformed(ConnectionSelectionVisualPanel.java:310)
    com.jaspersoft.ireport.designer.wizards.ConnectionSelectionVisualPanel.access$400(ConnectionSelectionVisualPanel.java:41)
    com.jaspersoft.ireport.designer.wizards.ConnectionSelectionVisualPanel$6.actionPerformed(ConnectionSelectionVisualPanel.java:218)
    javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
    javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
    javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
    javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
    javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    java.awt.Component.processMouseEvent(Component.java:5488)
    javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
    java.awt.Component.processEvent(Component.java:5253)
    java.awt.Container.processEvent(Container.java:1966)
    java.awt.Component.dispatchEventImpl(Component.java:3955)
    java.awt.Container.dispatchEventImpl(Container.java:2024)
    java.awt.Component.dispatchEvent(Component.java:3803)
    java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
    java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
    java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
    java.awt.Container.dispatchEventImpl(Container.java:2010)
    java.awt.Window.dispatchEventImpl(Window.java:1778)
    java.awt.Component.dispatchEvent(Component.java:3803)
    java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:104)
    java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:153)
    java.awt.Dialog$1.run(Dialog.java:517)
    java.awt.Dialog$2.run(Dialog.java:545)
    java.security.AccessController.doPrivileged(Native Method)
    java.awt.Dialog.show(Dialog.java:543)
    org.netbeans.core.windows.services.NbPresenter.superShow(NbPresenter.java:867)
    org.netbeans.core.windows.services.NbPresenter.doShow(NbPresenter.java:901)
    org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:889)
    org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:109)
    org.openide.util.Mutex.doEventAccess(Mutex.java:1355)
    org.openide.util.Mutex.readAccess(Mutex.java:268)
    org.netbeans.core.windows.services.NbPresenter.show(NbPresenter.java:874)
    java.awt.Component.show(Component.java:1300)
    java.awt.Component.setVisible(Component.java:1253)
    com.jaspersoft.ireport.designer.templates.TemplatesFrame.runTemplateWizard(TemplatesFrame.java:470)
    com.jaspersoft.ireport.designer.templates.ReportTemplateItemAction.performAction(ReportTemplateItemAction.java:50)
    com.jaspersoft.ireport.designer.templates.TemplatesFrame.jButtonLaunchWizardActionPerformed(TemplatesFrame.java:328)
    com.jaspersoft.ireport.designer.templates.TemplatesFrame.access$700(TemplatesFrame.java:55)
    com.jaspersoft.ireport.designer.templates.TemplatesFrame$10.actionPerformed(TemplatesFrame.java:244)
    javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
    javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
    javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
    javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
    javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    java.awt.Component.processMouseEvent(Component.java:5488)
    javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
    java.awt.Component.processEvent(Component.java:5253)
    java.awt.Container.processEvent(Container.java:1966)
    java.awt.Component.dispatchEventImpl(Component.java:3955)
    java.awt.Container.dispatchEventImpl(Container.java:2024)
    java.awt.Component.dispatchEvent(Component.java:3803)
    java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
    java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
    java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
    java.awt.Container.dispatchEventImpl(Container.java:2010)
    java.awt.Window.dispatchEventImpl(Window.java:1778)
    java.awt.Component.dispatchEvent(Component.java:3803)
    java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:104)
    java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:153)
    java.awt.Dialog$1.run(Dialog.java:517)
    java.awt.Dialog$2.run(Dialog.java:545)
    java.security.AccessController.doPrivileged(Native Method)
    java.awt.Dialog.show(Dialog.java:543)
    java.awt.Component.show(Component.java:1300)
    java.awt.Component.setVisible(Component.java:1253)
    com.jaspersoft.ireport.designer.templates.TemplatesFrame.setVisible(TemplatesFrame.java:582)
    com.jaspersoft.ireport.designer.welcome.QuickStartPanel.jButton2ActionPerformed(QuickStartPanel.java:331)
    com.jaspersoft.ireport.designer.welcome.QuickStartPanel.access$500(QuickStartPanel.java:50)
    com.jaspersoft.ireport.designer.welcome.QuickStartPanel$4.actionPerformed(QuickStartPanel.java:167)
    javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
    javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
    javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
    javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
    javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
    java.awt.Component.processMouseEvent(Component.java:5488)
    javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
    java.awt.Component.processEvent(Component.java:5253)
    java.awt.Container.processEvent(Container.java:1966)
    java.awt.Component.dispatchEventImpl(Component.java:3955)
    java.awt.Container.dispatchEventImpl(Container.java:2024)
    java.awt.Component.dispatchEvent(Component.java:3803)
    java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
    java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
    java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
    java.awt.Container.dispatchEventImpl(Container.java:2010)
    java.awt.Window.dispatchEventImpl(Window.java:1778)
    java.awt.Component.dispatchEvent(Component.java:3803)
    java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:104)
    java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

【问题讨论】:

    标签: ms-access jasper-reports ireport


    【解决方案1】:

    感谢 Jasper 论坛上的人提供的可能解决方案 http://jasperforge.org/plugins/espforum/view.php?group_id=83&forumid=101&topicid=73202

    I had to setup a a DSN for Access database
    
    To do this I went through these steps
    
    
    
    1. Goto start and control panel. Select administrative tools.
    
    2. In that select DataSources (ODBC).
    
    3. Click on the right side pane. click Add button
    
    4. I selected Microsoft Access Driver [*mdb]
    
    5. click finish
    
    6. Goto select and find the databse name on the drive. Select the location. (Here you are finding the database file you want)
    
    7. Once you have found the file ,click on Configure Button . Click on 
       SELECT and browse to the database you want to connect(generally a *mdb ,    * accdb.)You can add/change username and password to the database .As it is mandatory at times for iReport . 
    
    
    8. Leave system database has none
    
    9. Put a name in the Datasource call it what ever you want
    
    10. go to right panel and click okay
    
    11. Find the Dsn name added to the list. (Just to make sure its there)
    
    
    
    
    
    Now we set that up we now setup Ireporting
    
    1. Open it up
    
    2. Click data on the top menu its next to Format
    
    3. click Connections/ Datasources
    
    4. Click New button on the right panel
    
    5. Select Database JDBC connection
    
    6 .Click next
    
    7. Name : Type a name in call it what ever you want
    
    8. JDBC Driver: sun.jdbc.odbc.JdbcOdbcDriver
    
    9. JDBC URL: jdbc:odbc:???????
    
    10. In the question marks you put the name you called the datasource on step 9 on how to setup setup a a DSN for Access database
    
    11. Server address: leave blank
    
    12. Database: leave blank
    
    13. Database: leave blank
    
    14. Username: leave blank
    
    15. Password: leave blank
    
    16. Test it make sure it connects okay
    
    17. Click Save
    
    18. Select the datasource you have just done and click set as default
    

    【讨论】:

    • JDBC 是否需要 DSN?还是您只是没有提供正确的无 DSN 连接字符串?
    • 我对 Jasper 不够熟悉,不知道如何不使用 DSN,但上述说明确实对我有用。
    【解决方案2】:

    仅供参考 - 对于在 Windows 64 位计算机上收到有关“指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配”错误的未来读者,您需要删除您的 ODBC 连接,然后打开 32 位版本的ODBC 管理对话框以重新创建它。在 Win7 上是 c:\windows\sysWOW64\odbcad32.exe

    有关更多详细信息,请参阅 Microsoft 的此页面http://msdn.microsoft.com/en-us/library/ms712362%28v=vs.85%29.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-31
      • 2013-12-04
      相关资源
      最近更新 更多