问题描述
- Java操作paradox无法写入第二行
-
求大神解答:
用Java连接odbc,创建paradox数据库,发现可以创建数据表(.db)文件,插入第一行,但是在插入第二行的时候报错。打开创建的数据库查询,数据库有一行数据。
错误信息如下:
java.sql.SQLException: [Microsoft][ODBC Paradox Driver] 操作必须使用一个可更新的查询。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(Unknown Source)
文件夹已经给了所有权限。
Java代码:
连接ODBC代码
dbDriver="sun.jdbc.odbc.JdbcOdbcDriver";
Class.forName(dbDriver);
url = "jdbc:odbc:driver={Microsoft Paradox Driver (*.db )};"
+"DriverID=538;"
+"Fil=Paradox 5.x;"
+"DefaultDir="+path+";"
+"Dbq="+path+";"
+"CollatingSequence=ASCII;";
conn= DriverManager.getConnection(url);写入代码:
for(k=0;k<rows;k++){
sqlT[k]=sqlT[k]+") "+value[k]+");";
System.out.println("sql"+i +"="+sql+"nsqlT"+i+"="+sqlT[k]);
//stmt.addBatch(sqlT[k]);
stmt.executeUpdate(sqlT[k]);
}
其中sql是创建数据库的SQL语句
sqlT是插入数据的第一部分,value是第二部分
打印生成的sql语句如下
sql4=create table tb_schedule_step.DB (tf_schedule_id long,tf_section_seq long,tf_step_seq long,tf_step_type long,tf_voltage double,tf_current double,tf_limit double,tf_time_limit double,tf_time_limit_mode long,tf_capacity_limit double,tf_capacity_limit_mode long,tf_sample_time long,tf_sample_voltage long,tf_sample_current long);
sqlT4=Insert into tb_schedule_step.DB(tf_schedule_id,tf_section_seq,tf_step_seq,tf_step_type,tf_voltage,tf_current,tf_limit,tf_time_limit,tf_time_limit_mode,tf_capacity_limit,tf_capacity_limit_mode,tf_sample_time,tf_sample_voltage,tf_sample_current) values (20,1,1,0,0,0,0,300,0,0,0,60,10,10);
sql4=create table tb_schedule_step.DB (tf_schedule_id long,tf_section_seq long,tf_step_seq long,tf_step_type long,tf_voltage double,tf_current double,tf_limit double,tf_time_limit double,tf_time_limit_mode long,tf_capacity_limit double,tf_capacity_limit_mode long,tf_sample_time long,tf_sample_voltage long,tf_sample_current long);
sqlT4=Insert into tb_schedule_step.DB(tf_schedule_id,tf_section_seq,tf_step_seq,tf_step_type,tf_voltage,tf_current,tf_limit,tf_time_limit,tf_time_limit_mode,tf_capacity_limit,tf_capacity_limit_mode,tf_sample_time,tf_sample_voltage,tf_sample_current) values (20,1,2,1,4200,1000,4200,3600,0,25000,0,60,10,10);