From 8bf2c739a3757d4893efe5b80913b17adc692d05 Mon Sep 17 00:00:00 2001 From: Johannes Elias Date: Wed, 12 May 2021 15:02:30 +0000 Subject: [PATCH] Allow insert statements (from existing table to other) in mode -g --- src/main/java/dabadex/Query.java | 18 +++++++++++++++--- src/main/java/dabadex/Start.java | 2 +- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main/java/dabadex/Query.java b/src/main/java/dabadex/Query.java index 3f4021c..0f0e941 100644 --- a/src/main/java/dabadex/Query.java +++ b/src/main/java/dabadex/Query.java @@ -25,11 +25,23 @@ public Query(ParametersG p) throws SQLException { } private void getData() throws SQLException { - lg.log(Level.FINE,"Sending query: " + p.getQuery()); + String sql = p.getQuery(); + lg.log(Level.FINE,"Sending query: " + sql); if (!p.getStoredProcedure()) { - rs = st.executeQuery(p.getQuery()); + // The query can be an insert statement without data to be uploaded (e.g. insert data from existing table to other). + // These queries do not return a resultset and therefore generate an error. + // To avoid that queries that contain "insert" are processed using executeUpdate. + + // check if sql contains pattern 'insert' + if (sql.toLowerCase().contains("insert")) { + // if yes: process with executeUpdate + st.executeUpdate(sql); + } else { + // if no: process with executeQuery + rs = st.executeQuery(sql); + } } else { - rs = conn.prepareCall(p.getQuery()).executeQuery(); + rs = conn.prepareCall(sql).executeQuery(); } dt = new DataReadIn(rs); //st.close(); diff --git a/src/main/java/dabadex/Start.java b/src/main/java/dabadex/Start.java index 600bcbe..edaa608 100644 --- a/src/main/java/dabadex/Start.java +++ b/src/main/java/dabadex/Start.java @@ -13,7 +13,7 @@ import utils.Utils; public class Start implements Runnable { - public final static String version = "0.1.1"; + public final static String version = "0.1.2"; public final static Logger LOGGER = Logger.getLogger("DaBaDExLog"); public static int cycle = 1; private DaBaDExParam p;