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 用matlab 设计一个不动点迭代法求解非线性方程组的代码
    • ¥15 牛顿斯科特系数表表示
    • ¥15 arduino 步进电机
    • ¥20 程序进入HardFault_Handler
    • ¥15 oracle集群安装出bug
    • ¥15 关于#python#的问题:自动化测试
    • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
    • ¥15 教务系统账号被盗号如何追溯设备
    • ¥20 delta降尺度方法,未来数据怎么降尺度
    • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效