使用 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) 并且没有出现此错误的原因”的主要内容,如果未能解决你的问题,请参考以下文章
使用 Jackcess 在 Java 中创建一个新的 MS Access 文件