JSP - Microsoft ODBC - Microsoft Access 驱动程序找不到文件“(未知)”

Posted

技术标签:

【中文标题】JSP - Microsoft ODBC - Microsoft Access 驱动程序找不到文件“(未知)”【英文标题】:JSP - Microsoft ODBC - Microsoft Access Driver Could not find file '(unknown)' 【发布时间】:2015-12-27 13:59:31 【问题描述】:

我是 JSP 的新手。所以我想制作一个登录网站,但我坚持使用 sql 异常。有谁知道如何解决这个问题?我使用的所有程序都是 32 位的,并且我已经将 Ms Access 数据库添加到我的用户数据源中。

这里是错误信息:

5: <%
6:  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
7:  Connection con = DriverManager.getConnection("jdbc:odbc:Driver=Microsoft Access Driver (*.mdb, *.accdb);DBQ="+application.getRealPath("WEB-INF/db.accdb"));
8:  Statement st = con.createStatement(1004,1008);
9: 
10: %>

堆栈跟踪:

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
root cause

javax.servlet.ServletException: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Could not find file '(unknown)'.
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:916)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:845)
    org.apache.jsp.khema.doLogin_jsp._jspService(doLogin_jsp.java:145)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
root cause

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Could not find file '(unknown)'.
    sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
    sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
    sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3073)
    sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
    sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
    java.sql.DriverManager.getConnection(DriverManager.java:582)
    java.sql.DriverManager.getConnection(DriverManager.java:207)
    org.apache.jsp.khema.doLogin_jsp._jspService(doLogin_jsp.java:72)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)

【问题讨论】:

你可以让你的 scriptlet 吐出application.getRealPath("WEB-INF/db.accdb") 的值,看看数据库文件是否真的存在那里。 (似乎没有。)您可能还想查看答案here。 【参考方案1】:

首先请确保您指定了 DB 文件的正确路径,然后执行以下步骤。 从控制面板搜索管理工具,然后搜索数据源(ODBC),然后添加Microsoft Access Drivers(*mdb,*accdb)

【讨论】:

以上是关于JSP - Microsoft ODBC - Microsoft Access 驱动程序找不到文件“(未知)”的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC

odbc_exec():SQL 错误:[Microsoft][ODBC Microsoft Access Driver] 参数太少。预期 1.,SQLExecDirect 中的 SQL 状态 0700

JDBC-ODBC桥接器连接Access数据库

odbc_exec():SQL 错误:[Microsoft][ODBC Microsoft Access Driver] 查询表达式中的语法错误(缺少运算符)

PHP 警告:odbc_connect():SQL 错误:[Microsoft][ODBC Microsoft Access Driver]一般错误无法打开临时注册表项(易失性)

无法通过 odbc 连接到 Microsoft Azure 数据库