使用 java 在 access 数据库中创建表期间出现“保留错误 (-5001) 并且没有出现此错误的原因”

Posted

技术标签:

【中文标题】使用 java 在 access 数据库中创建表期间出现“保留错误 (-5001) 并且没有出现此错误的原因”【英文标题】:"Reserved Error (-5001) and there is no reason for this error" during table creation in access database using java 【发布时间】:2014-10-30 05:49:43 【问题描述】:

我需要在 access 数据库中创建一个表,为此我使用了以下代码。它正在创建表格,但在单击表格时会引发类似“保留错误(-5001)并且没有原因导致此错误”的错误。

我的代码:

public class NewClass 
public static void main (String args[])

    String dbFileSpec = "C:\\Documents and Settings\\admin\\My Documents\\NetBeansProjects\\AutomateExcelDatabase\\Centre.accdb";
    try (Connection conn = DriverManager.getConnection(
            "jdbc:ucanaccess://" + dbFileSpec
            + ";newdatabaseversion=V2007")) 
        DatabaseMetaData dmd = conn.getMetaData();
        try (ResultSet rs = dmd.getTables(null, null, "Clients", new String[]"TABLE")) 
            if (rs.next()) 
                System.out.println("Table [Clients] already exists.");
             else 
                System.out.println("Table [Clients] does not exist.");
                try (Statement s = conn.createStatement()) 
                    s.executeUpdate("CREATE TABLE Clients (ID COUNTER PRIMARY KEY, LastName TEXT(100))");
                    System.out.println("Table [Clients] created.");
                
            
        
        conn.close();
     catch (SQLException ex) 
        Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex);
    

提出一些解决此错误的想法。

【问题讨论】:

这三个嵌入的try块是什么 请问打开表格出现这个错误的原因... @ScaryWombat 他们是try-with-resources 【参考方案1】:

使用最新版本的 UCanAccess 可能会解决您的问题。您可以从这里下载:

http://sourceforge.net/projects/ucanaccess/files/latest/download

【讨论】:

【参考方案2】:

请参考此链接。它会给你一个想法

http://www.personalcomputerfixes.com/general-fixes/5001-error-fix-%E2%80%93-how-to-resolve-the-5001-error-on-windows/

【讨论】:

来自How do I write a good answer?: “鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户知道它是什么以及为什么存在。总是引用重要链接的最相关部分,以防目标站点无法访问或永久离线。” - 请花点时间edit您的答案以包含相关信息(提示:没有任何信息)或考虑删除此答案。【参考方案3】:

我注意到-5001错误的原因是示例中使用的数据类型COUNTER,我将其替换为数据类型NUMBER,一切顺利。

【讨论】:

以上是关于使用 java 在 access 数据库中创建表期间出现“保留错误 (-5001) 并且没有出现此错误的原因”的主要内容,如果未能解决你的问题,请参考以下文章

ACCESS里如何用SQL语句创建数据库和表

使用 Jackcess 在 Java 中创建一个新的 MS Access 文件

使用 FIREDAC 创建表 MS ACCESS

Java Web 项目,数据库建表

使用 Android 版 PhoneGap:无法在数据库中创建表

如何使用 PHP 在 MySQL 中创建表?