【发布时间】:2015-07-19 03:37:17
【问题描述】:
我正在尝试提交到 Microsoft Access 2014。我创建了一个旧版本的 .mdb 文件与 2014。因为我在创建 System DSN 时没有得到 .accdb 选项。我在提交 Access 数据库时遇到了一些问题。
问题:
1) 我已经做了一点 SQL,但是我们在这里使用的这个 SQL 是完全不同的。我在哪里可以阅读更多这个 SQL 语法?即 int vs number 等
2) CREATE TABLE 用户抛出 SQL 语法错误
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Syntax error in
CREATE TABLE statement.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3111)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:288)
at Test.main(t.java:28)
我不明白什么是语法错误
3)我想写这样的黑白函数:
CREATE TABLE user(
ID int PRIMARY KEY AUTO_INCREMENTED NOT NULL,
name varchar(30) );
在多行中,而不是在单个长行中。我尝试在每行拆分后使用\,但给了我编译时错误。
4) 在 CREATE TABLE 批处理 的情况下,此程序运行完美。在 MS Access 数据库中创建一个 BATCH 表,但不会将数据插入到相应的表中。 (我已经在代码中注释了与 batch 表相关的所有内容。所以,我只能看到 user 表的错误)
注意:db 是我在 C:\Windows\SysWOW64\odbcad32.exe 中创建的 DSN 名称
代码
import java.sql.*;
import java.util.*;
class Test{
public static void main(String args[]){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("Driver Loaded");
Connection myConnection = DriverManager.getConnection("jdbc:odbc:db");
System.out.println("connection established");
Statement myStatement = myConnection.createStatement();
myStatement.executeUpdate("CREATE TABLE user(ID number NOT NULL AUTO_INCREMENTED,LastName char NOT NULL,FirstName char NOT NULL, Tweet char,PRIMARY KEY (ID))");
//myStatement.executeUpdate("CREATE TABLE batch(name char, age number)");
System.out.println("Created Table");
myStatement.executeUpdate("INSERT INTO user VALUES
//myStatement.executeUpdate("INSERT INTO batch values('rakesh', 23)");
System.out.println("Commited in table");
myStatement.close();
myStatement.close();
}catch(SQLException e){ e.printStackTrace();}
catch(ClassNotFoundException e){ e.printStackTrace();}
}
}
【问题讨论】:
-
据我所知,必须始终命名约束(包括主键)并且子句的顺序很重要,请参阅msdn.microsoft.com/EN-US/library/office/ff837200.aspx
标签: java sql ms-access jdbc odbc