paradox数据库的java更新查询
我试图从java更新paradox表,但遇到了一个异常 java.sql.SQLException:[Microsoft][ODBC Paradox Driver]操作必须使用可更新的查询。 java.sql.SQLException:[Microsoft][ODBC Paradox Driver]操作必须使用可更新的查询。 java.sql.SQLException:[Microsoft][ODBC Paradox Driver]操作必须使用可更新的查询 我正在使用以下代码:paradox数据库的java更新查询,java,sql,sql-update,paradox,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
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);
}
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
试一试{
Connection paradoxCon=paradox.createConnection();
结果res=新结果();
res.getAll();
if(res.allRes.isEmpty()){
showMessageDialog(主面板,“没有已完成或延迟的游戏!”,“错误”,JOptionPane.Error\u消息);
}否则{
int y=res.allRes.size();
对于(int x=0;x
我使用INTERSOLV 3.11 32位ParadoxFile(*.db)驱动程序解决了这个问题
我使用此驱动程序创建了一个系统DSN数据源,并连接到此数据源Hi,欢迎使用SO!如果可能的话,请告诉我们发生在哪一行。您能在调试器中看到吗?我尝试只使用一个sql查询更新表,而不使用if和for块,得到了相同的结果我使用INTERSOLV 3.11 32位ParadoxFile(*.db)driverExcellent解决了这个问题!你知道你可以回答自己的问题并接受它作为答案吗。这被认为是一种很好的做法,因为它可以帮助寻找答案的人看到答案,并帮助他们找到答案。如果答案只是在评论中,那么这个问题似乎没有答案。