我需要在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);
}
}
}
建议解决此错误。
答案 0 :(得分:2)
使用最新版本的UCanAccess可以解决您的问题。你可以从这里下载:
http://sourceforge.net/projects/ucanaccess/files/latest/download
答案 1 :(得分:0)
请参阅此链接。它会给你一个想法
答案 2 :(得分:0)
我注意到-5001错误的原因是示例中使用的数据类型COUNTER
,我将其替换为数据类型NUMBER
,一切顺利。