我正在尝试进入Microsoft Access 2014.我在2014年创建了旧版本的.mdb
文件。由于我在创建System DSN
时没有获得.accdb
选项。我在提交Access数据库时遇到了一些问题。Type1中的SQL语法:java jdbc odbc bridge
问题:
1)我已经做了SQL的点点,但这个SQL我们在这里用的是完全不同的。凡我可以读到更多这个SQL语法?即INT VS号等
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)我想写的B/W功能是这样的:
CREATE TABLE user(
ID int PRIMARY KEY AUTO_INCREMENTED NOT NULL,
name varchar(30));
在多个线
,而不是在一个单一的长行。我在每行拆分后都尝试使用\
,但给我编译时错误。
4)如果是CREATE TABLE批次,这个程序运行完好。在MS Access数据库中创建一个BATCH表,但不将数据插入到相应的表中。 (我有评论相关一批表代码,这样,我可以看到错误,只为用户表中的所有东西。)
注:DB是我用C创建的DSN名称:\ WINDOWS \ Syswow64资料\ odbcad32.exe的
CODE
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();}
}
}
据我所知,限制(包括主键)必须始终命名并且子句的顺序很重要,请参阅https://msdn.microsoft.com/EN-US/library/office/ff837200.aspx –