"保留错误(-5001)并且没有理由出现此错误"在使用java的Access数据库中创建表时

时间:2014-10-30 05:49:44

标签: java ms-access-2007 ucanaccess

我需要在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);
    }
}

}

建议解决此错误。

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

答案 2 :(得分:0)

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