0

我需要在访问数据库中创建一个表,为此我使用了以下代码。它正在创建表,但在单击表时会引发类似“保留错误(-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);
    }
}

}

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

4

3 回答 3

2

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

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

于 2014-10-30T08:31:18.767 回答
0

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

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

于 2014-10-30T06:05:57.533 回答
0

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

于 2016-10-12T18:45:05.027 回答