sonwood 2015-08-26 04:02
浏览 625

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);

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 素材场景中光线烘焙后灯光失效
    • ¥15 请教一下各位,为什么我这个没有实现模拟点击
    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 保护模式-系统加载-段寄存器