用于paradox数据库的java更新查询

时间:2013-01-19 01:29:51

标签: java sql sql-update paradox

我正在尝试从java更新paradox表,但我得到了一个例外

java.sql.SQLException:[Microsoft] [ODBC Paradox Driver]操作必须使用可更新的查询。 java.sql.SQLException:[Microsoft] [ODBC Paradox Driver]操作必须使用可更新的查询。 java.sql.SQLException:[Microsoft] [ODBC Paradox Driver]操作必须使用可更新的查询。

我正在使用此代码:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    try {
        Connection paradoxCon = paradox.createConnection();
        Results res = new Results();
        res.getAll();
        if (res.allRes.isEmpty()) {
            JOptionPane.showMessageDialog(mainPanel, "There are no Finished or Postponed Games!", "Error", JOptionPane.ERROR_MESSAGE);
        } else {
            int y = res.allRes.size();
            for (int x = 0; x < y; x = x + 1) {
                try {
                    if (res.getAll().get(x).Reversed == 0) {
                        if (res.getAll().get(x).Status.equals("Fin")) {
                            String sql = "UPDATE Kvote SET _45_d = '" + res.getAll().get(x).HThome + "', _45_g = '" + res.getAll().get(x).HTaway + "', _90_d= '" + res.getAll().get(x).FThome + "', _90_g = '" + res.getAll().get(x).FTaway + "', Ok='Y' WHERE Kolo = '" + res.getAll().get(x).tRound + "' AND Sifra='" + res.getAll().get(x).TID + "'";
                            PreparedStatement ps = paradoxCon.prepareStatement(sql);
                            ps.executeUpdate();
                        }
                        if (res.getAll().get(x).Status.equals("Post")) {
                            String sql = "UPDATE Kvote SET _45_d = '" + res.getAll().get(x).HThome + "', _45_g = '" + res.getAll().get(x).HTaway + "', _90_d= '" + res.getAll().get(x).FThome + "', _90_g = '" + res.getAll().get(x).FTaway + "', Ok='O' WHERE Kolo = '" + res.getAll().get(x).tRound + "' AND Sifra='" + res.getAll().get(x).TID + "'";
                            PreparedStatement ps = paradoxCon.prepareStatement(sql);
                            ps.executeUpdate();
                        }
                    }
                    if (res.getAll().get(x).Reversed == 1) {
                        if (res.getAll().get(x).Status.equals("Fin")) {
                            String sql = "UPDATE Kvote SET _45_d = '" + res.getAll().get(x).HTaway + "', _45_g = '" + res.getAll().get(x).HThome + "', _90_d= '" + res.getAll().get(x).FTaway + "', _90_g = '" + res.getAll().get(x).FThome + "', Ok='Y' WHERE Kolo = '" + res.getAll().get(x).tRound + "' AND Sifra='" + res.getAll().get(x).TID + "'";
                            PreparedStatement ps = paradoxCon.prepareStatement(sql);
                            ps.executeUpdate();
                        }
                        if (res.getAll().get(x).Status.equals("Post")) {
                            String sql = "UPDATE Kvote SET _45_d = '" + res.getAll().get(x).HTaway + "', _45_g = '" + res.getAll().get(x).HThome + "', _90_d= '" + res.getAll().get(x).FTaway + "', _90_g = '" + res.getAll().get(x).FThome + "', Ok='O' WHERE Kolo = '" + res.getAll().get(x).tRound + "' AND Sifra='" + res.getAll().get(x).TID + "'";
                            PreparedStatement ps = paradoxCon.prepareStatement(sql);
                            ps.executeUpdate();
                        }
                    }
                } catch (Exception ex) {
                    System.out.println(ex);
                }
            }
        }
        res.getAll().clear();
    } catch (ParseException ex) {
        Logger.getLogger(AutoResultsImporterView.class.getName()).log(Level.SEVERE, null, ex);
    }
}

1 个答案:

答案 0 :(得分:0)

我使用INTERSOLV 3.11 32-BIT ParadoxFile(* .db)驱动程序解决问题 我使用此驱动程序创建了一个系统DSN数据源并连接到此数据源