From 8559e59f68543dac4ec38b52cde882ba32954479 Mon Sep 17 00:00:00 2001 From: ?? ? <ulysseskao@ximple.com.tw> Date: Tue, 12 Aug 2008 11:13:39 +0800 Subject: [PATCH] update for EOFM-145 --- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java | 66 +++++++++++++++++++++++--------- 1 files changed, 47 insertions(+), 19 deletions(-) diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java index d38752e..d7a0883 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java @@ -283,8 +283,36 @@ private void copyConnectivity(OracleConvertPostGISJobContext jobContext) throws SQLException { Connection connection = jobContext.getOracleConnection(); + ResultSet rsMeta = connection.getMetaData().getTables(null, "BASEDB", + AbstractOracleJobContext.CONNECTIVITY_WEBCHECK_NAME + "%", + new String[]{"TABLE"}); + + boolean found = false; + try + { + while (rsMeta.next()) + { + String tablename = rsMeta.getString(3); + if (AbstractOracleJobContext.CONNECTIVITY_WEBCHECK_NAME.equalsIgnoreCase(tablename)) + { + found = true; + break; + } + } + // } catch (SQLException e) + } finally + { + if (rsMeta != null) + { + rsMeta.close(); + rsMeta = null; + } + } Statement stmt = connection.createStatement(); - stmt.execute(AbstractOracleJobContext.TRUNCATE_CONNECTIVITY_WEBCHECK); + if (found) + stmt.execute(AbstractOracleJobContext.TRUNCATE_CONNECTIVITY_WEBCHECK); + else + stmt.execute(AbstractOracleJobContext.CREATE_CONNECTIVITY_WEBCHECK); stmt.execute(AbstractOracleJobContext.COPY_CONNECTIVITY_TO_WEBCHECK); stmt.close(); } @@ -689,11 +717,11 @@ if ((!type.isComplexElement()) && (!element.isComponentElement())) { - if (lastComplex != null) - { - processIndexElement(lastComplex, convertContext); - lastComplex = null; - } + if (lastComplex != null) + { + processIndexElement(lastComplex, convertContext); + lastComplex = null; + } processIndexElement(element, convertContext); } else if (element.isComponentElement()) @@ -708,7 +736,7 @@ { processIndexElement(lastComplex, convertContext); } - lastComplex = element; + lastComplex = element; } } count++; @@ -828,11 +856,11 @@ if ((!type.isComplexElement()) && (!element.isComponentElement())) { - if (lastComplex != null) - { - processOtherElement(lastComplex, convertContext); - lastComplex = null; - } + if (lastComplex != null) + { + processOtherElement(lastComplex, convertContext); + lastComplex = null; + } processOtherElement(element, convertContext); } else if (element.isComponentElement()) @@ -847,7 +875,7 @@ { processOtherElement(lastComplex, convertContext); } - lastComplex = element; + lastComplex = element; } } count++; @@ -1011,11 +1039,11 @@ if ((!type.isComplexElement()) && (!element.isComponentElement())) { - if (lastComplex != null) - { - processFeatureElement(lastComplex, convertContext); - lastComplex = null; - } + if (lastComplex != null) + { + processFeatureElement(lastComplex, convertContext); + lastComplex = null; + } processFeatureElement(element, convertContext); } else if (element.isComponentElement()) @@ -1030,7 +1058,7 @@ { processFeatureElement(lastComplex, convertContext); } - lastComplex = element; + lastComplex = element; } } count++; -- Gitblit v0.0.0-SNAPSHOT