Mercurial > dive4elements > gnv-client
comparison geo-backend/src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java @ 277:f304f2f12db4
Changed the splitting of the Statements for ARCSDE-Transformation.
Now it is possible to use a Select-Statement as an Table.
geo-backend/trunk@312 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Tue, 10 Nov 2009 11:47:59 +0000 |
parents | 9063c5fcebf7 |
children | 6a585e87c18b |
comparison
equal
deleted
inserted
replaced
276:6503bc864017 | 277:f304f2f12db4 |
---|---|
125 SeQuery query = null; | 125 SeQuery query = null; |
126 if (statement.toLowerCase().contains("st_astext") || statement.toLowerCase().contains("intersects")){ | 126 if (statement.toLowerCase().contains("st_astext") || statement.toLowerCase().contains("intersects")){ |
127 | 127 |
128 String[] values = statement.toLowerCase().split("where", 2); | 128 String[] values = statement.toLowerCase().split("where", 2); |
129 String where = values.length > 1 ? values[1].trim() : ""; | 129 String where = values.length > 1 ? values[1].trim() : ""; |
130 values = values[0].split("from", 2); | 130 String[] tableNames = values[0].substring(values[0].indexOf("from")).replaceFirst("from", "").toUpperCase().trim().split(", "); |
131 String[] tableNames = values[1].toUpperCase().trim().split(","); | 131 String columnValueString = values[0].substring(0, values[0].indexOf("from")).trim(); |
132 String[] returnFields = values[0].replaceAll("select", "").trim().split(","); | 132 columnValueString = columnValueString.replaceFirst("select", "").trim(); |
133 String[] returnFields = columnValueString.split(","); | |
133 String geometryColumnName = null; | 134 String geometryColumnName = null; |
134 String byClause = null; | 135 String byClause = null; |
135 int byClausePos = where.indexOf("group by"); | 136 int byClausePos = where.indexOf("group by"); |
136 if (byClausePos < 0){ | 137 if (byClausePos < 0){ |
137 byClausePos = where.indexOf("order by"); | 138 byClausePos = where.indexOf("order by"); |