annotate geo-backend/src/main/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEStatement.java @ 546:210716612c30

Removed Encodingerrors from listed Files. All Files are now UTF-8 compliant. geo-backend/trunk@517 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Fri, 08 Jan 2010 14:40:08 +0000
parents 33f93898cbbf
children 23d5cc37dd5b
rev   line source
130
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
1 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
2 *
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
3 */
266
1530890b28c9 Added SFS-Support to ArcSDE-Query-Part without any Spatial restriction in the where clause
Tim Englich <tim.englich@intevation.de>
parents: 263
diff changeset
4 package de.intevation.gnv.geobackend.sde.datasources;
130
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
5
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
6 import java.sql.Connection;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
7 import java.sql.ResultSet;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
8 import java.sql.SQLException;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
9 import java.sql.SQLWarning;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
10 import java.sql.Statement;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
11
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
12 import org.apache.log4j.Logger;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
13
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
14 import com.esri.sde.sdk.client.SDEPoint;
130
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
15 import com.esri.sde.sdk.client.SeColumnDefinition;
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
16 import com.esri.sde.sdk.client.SeConnection;
130
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
17 import com.esri.sde.sdk.client.SeException;
543
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
18 import com.esri.sde.sdk.client.SeExtent;
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
19 import com.esri.sde.sdk.client.SeFilter;
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
20 import com.esri.sde.sdk.client.SeLayer;
130
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
21 import com.esri.sde.sdk.client.SeQuery;
267
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
22 import com.esri.sde.sdk.client.SeQueryInfo;
543
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
23 import com.esri.sde.sdk.client.SeRaster;
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
24 import com.esri.sde.sdk.client.SeRasterAttr;
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
25 import com.esri.sde.sdk.client.SeRasterBand;
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
26 import com.esri.sde.sdk.client.SeRasterConstraint;
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
27 import com.esri.sde.sdk.client.SeRasterTile;
130
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
28 import com.esri.sde.sdk.client.SeRow;
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
29 import com.esri.sde.sdk.client.SeShape;
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
30 import com.esri.sde.sdk.client.SeShapeFilter;
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
31 import com.esri.sde.sdk.client.SeSqlConstruct;
544
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
32 import com.vividsolutions.jts.geom.Coordinate;
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
33 import com.vividsolutions.jts.geom.Envelope;
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
34 import com.vividsolutions.jts.geom.Geometry;
383
0b813ae17173 Added Point in Polygon Query Support to ArcSDE-Statement-Processing
Tim Englich <tim.englich@intevation.de>
parents: 380
diff changeset
35 import com.vividsolutions.jts.geom.Point;
0b813ae17173 Added Point in Polygon Query Support to ArcSDE-Statement-Processing
Tim Englich <tim.englich@intevation.de>
parents: 380
diff changeset
36 import com.vividsolutions.jts.geom.Polygon;
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
37 import com.vividsolutions.jts.io.WKTReader;
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
38
130
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
39
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
40 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
41 * @author Tim Englich <tim.englich@intevation.de>
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
42 *
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
43 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
44 public class ArcSDEStatement implements Statement {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
45
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
46 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
47 * the logger, used to log exceptions and additonaly information
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
48 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
49 private static Logger log = Logger.getLogger(ArcSDEStatement.class);
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
50
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
51 private ArcSDEConnection connection = null;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
52
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
53 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
54 * Constructor
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
55 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
56 public ArcSDEStatement(ArcSDEConnection connection) {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
57 this.connection = connection;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
58 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
59
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
60 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
61 * @see java.sql.Statement#addBatch(java.lang.String)
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
62 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
63 public void addBatch(String arg0) throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
64 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
65
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
66 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
67 * @see java.sql.Statement#cancel()
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
68 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
69 public void cancel() throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
70 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
71
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
72 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
73 * @see java.sql.Statement#clearBatch()
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
74 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
75 public void clearBatch() throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
76 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
77
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
78 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
79 * @see java.sql.Statement#clearWarnings()
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
80 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
81 public void clearWarnings() throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
82 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
83
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
84 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
85 * @see java.sql.Statement#close()
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
86 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
87 public void close() throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
88 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
89
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
90 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
91 * @see java.sql.Statement#execute(java.lang.String)
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
92 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
93 public boolean execute(String arg0) throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
94
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
95 return false;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
96 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
97
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
98 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
99 * @see java.sql.Statement#execute(java.lang.String, int)
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
100 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
101 public boolean execute(String arg0, int arg1) throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
102
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
103 return false;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
104 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
105
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
106 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
107 * @see java.sql.Statement#execute(java.lang.String, int[])
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
108 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
109 public boolean execute(String arg0, int[] arg1) throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
110
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
111 return false;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
112 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
113
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
114 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
115 * @see java.sql.Statement#execute(java.lang.String, java.lang.String[])
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
116 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
117 public boolean execute(String arg0, String[] arg1) throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
118
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
119 return false;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
120 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
121
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
122 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
123 * @see java.sql.Statement#executeBatch()
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
124 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
125 public int[] executeBatch() throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
126
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
127 return null;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
128 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
129
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
130 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
131 * @see java.sql.Statement#executeQuery(java.lang.String)
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
132 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
133 public ResultSet executeQuery(String statement) throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
134 try {
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
135 SeQuery query = null;
275
9063c5fcebf7 Added the possibility to use Innerselects in SpatialQueries
Tim Englich <tim.englich@intevation.de>
parents: 274
diff changeset
136 if (statement.toLowerCase().contains("st_astext") || statement.toLowerCase().contains("intersects")){
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
137
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
138 String[] values = statement.toLowerCase().split("where", 2);
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
139 String where = values.length > 1 ? values[1].trim() : "";
277
f304f2f12db4 Changed the splitting of the Statements for ARCSDE-Transformation.
Tim Englich <tim.englich@intevation.de>
parents: 275
diff changeset
140 String[] tableNames = values[0].substring(values[0].indexOf("from")).replaceFirst("from", "").toUpperCase().trim().split(", ");
f304f2f12db4 Changed the splitting of the Statements for ARCSDE-Transformation.
Tim Englich <tim.englich@intevation.de>
parents: 275
diff changeset
141 String columnValueString = values[0].substring(0, values[0].indexOf("from")).trim();
f304f2f12db4 Changed the splitting of the Statements for ARCSDE-Transformation.
Tim Englich <tim.englich@intevation.de>
parents: 275
diff changeset
142 columnValueString = columnValueString.replaceFirst("select", "").trim();
377
6a585e87c18b Added RegionFilter-Support to HorizontalProfile InstantaneousPoint
Tim Englich <tim.englich@intevation.de>
parents: 277
diff changeset
143 String[] returnFields = columnValueString.split(", ");
275
9063c5fcebf7 Added the possibility to use Innerselects in SpatialQueries
Tim Englich <tim.englich@intevation.de>
parents: 274
diff changeset
144 String geometryColumnName = null;
267
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
145 String byClause = null;
274
ff1b7967e6b9 General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents: 267
diff changeset
146 int byClausePos = where.indexOf("group by");
267
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
147 if (byClausePos < 0){
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
148 byClausePos = where.indexOf("order by");
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
149 }
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
150 if (byClausePos > 0){
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
151 byClause = where.substring(byClausePos);
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
152 where = where.substring(0,byClausePos);
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
153 }
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
154
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
155 for (int i = 0; i < returnFields.length; i++){
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
156 returnFields[i] = returnFields[i].trim();
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
157 if (returnFields[i].startsWith("st_astext(")){
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
158 returnFields[i] = returnFields[i].replaceAll("st_astext", "");
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
159 returnFields[i] = returnFields[i].substring(1, returnFields[i].length()-1);
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
160 geometryColumnName = returnFields[i];
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
161 }
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
162 }
267
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
163
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
164 for (int i = 0; i < tableNames.length; i++){
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
165 tableNames[i] = tableNames[i].trim();
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
166 }
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
167
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
168 Geometry g = null;
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
169 int pos = where.indexOf("intersects");
543
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
170 if (pos >= 0 ){
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
171 String substr = where.substring(pos);
546
210716612c30 Removed Encodingerrors from listed Files. All Files are now UTF-8 compliant.
Tim Englich <tim.englich@intevation.de>
parents: 544
diff changeset
172 where = where.substring(0,where.lastIndexOf("intersects"));
543
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
173 int andPos = where.lastIndexOf("and");
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
174 if (andPos < 0){
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
175 andPos = 0;
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
176 }
546
210716612c30 Removed Encodingerrors from listed Files. All Files are now UTF-8 compliant.
Tim Englich <tim.englich@intevation.de>
parents: 544
diff changeset
177 where = where.substring(0,andPos); // TODO support or also
210716612c30 Removed Encodingerrors from listed Files. All Files are now UTF-8 compliant.
Tim Englich <tim.englich@intevation.de>
parents: 544
diff changeset
178 String intersectsStmt = substr.substring(0, substr.lastIndexOf(")")); // Spatial-Statment is the last one
275
9063c5fcebf7 Added the possibility to use Innerselects in SpatialQueries
Tim Englich <tim.englich@intevation.de>
parents: 274
diff changeset
179 String wkt = null;
9063c5fcebf7 Added the possibility to use Innerselects in SpatialQueries
Tim Englich <tim.englich@intevation.de>
parents: 274
diff changeset
180 if (intersectsStmt.contains("select")){
9063c5fcebf7 Added the possibility to use Innerselects in SpatialQueries
Tim Englich <tim.englich@intevation.de>
parents: 274
diff changeset
181 // Anstelle eines WKT ist ein InnerSelect zum Bestimmen der Comparatorgeometrie gegeben.
9063c5fcebf7 Added the possibility to use Innerselects in SpatialQueries
Tim Englich <tim.englich@intevation.de>
parents: 274
diff changeset
182 String stmt = intersectsStmt.substring(intersectsStmt.indexOf("select"),intersectsStmt.lastIndexOf(")"));
9063c5fcebf7 Added the possibility to use Innerselects in SpatialQueries
Tim Englich <tim.englich@intevation.de>
parents: 274
diff changeset
183 ResultSet resultSet = this.executeQuery(stmt);
9063c5fcebf7 Added the possibility to use Innerselects in SpatialQueries
Tim Englich <tim.englich@intevation.de>
parents: 274
diff changeset
184 if (resultSet != null && resultSet.next()){
546
210716612c30 Removed Encodingerrors from listed Files. All Files are now UTF-8 compliant.
Tim Englich <tim.englich@intevation.de>
parents: 544
diff changeset
185 // TODO: Support the selection of more than one Geometry
275
9063c5fcebf7 Added the possibility to use Innerselects in SpatialQueries
Tim Englich <tim.englich@intevation.de>
parents: 274
diff changeset
186 wkt = resultSet.getString("SHAPE");
9063c5fcebf7 Added the possibility to use Innerselects in SpatialQueries
Tim Englich <tim.englich@intevation.de>
parents: 274
diff changeset
187 }
9063c5fcebf7 Added the possibility to use Innerselects in SpatialQueries
Tim Englich <tim.englich@intevation.de>
parents: 274
diff changeset
188 }else{
9063c5fcebf7 Added the possibility to use Innerselects in SpatialQueries
Tim Englich <tim.englich@intevation.de>
parents: 274
diff changeset
189 wkt = intersectsStmt.substring(intersectsStmt.indexOf("\""), intersectsStmt.lastIndexOf("\"")).replace("\"", "").trim();
9063c5fcebf7 Added the possibility to use Innerselects in SpatialQueries
Tim Englich <tim.englich@intevation.de>
parents: 274
diff changeset
190 }
383
0b813ae17173 Added Point in Polygon Query Support to ArcSDE-Statement-Processing
Tim Englich <tim.englich@intevation.de>
parents: 380
diff changeset
191 g = new WKTReader().read(wkt.toUpperCase());
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
192
275
9063c5fcebf7 Added the possibility to use Innerselects in SpatialQueries
Tim Englich <tim.englich@intevation.de>
parents: 274
diff changeset
193 if (geometryColumnName == null){
9063c5fcebf7 Added the possibility to use Innerselects in SpatialQueries
Tim Englich <tim.englich@intevation.de>
parents: 274
diff changeset
194 geometryColumnName = "SHAPE"; // TODO dynamisch aus Intersects auslesen.
9063c5fcebf7 Added the possibility to use Innerselects in SpatialQueries
Tim Englich <tim.englich@intevation.de>
parents: 274
diff changeset
195 }
9063c5fcebf7 Added the possibility to use Innerselects in SpatialQueries
Tim Englich <tim.englich@intevation.de>
parents: 274
diff changeset
196
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
197 }
543
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
198
267
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
199 return this.executeQuery(this.connection.getSeConnection(), tableNames, geometryColumnName, where, g, returnFields,byClause);
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
200 }else{
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
201 query = new SeQuery(this.connection.getSeConnection());
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
202 query.prepareSql(statement);
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
203 query.execute();
543
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
204 return this.handleResultSet(query,false,null);
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
205 }
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
206
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
207 } catch (Exception e) {
130
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
208 log.error(e,e);
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
209 throw new SQLException(e.getMessage());
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
210 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
211
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
212
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
213 }
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
214
267
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
215 private ResultSet executeQuery(SeConnection con, String[] pLayername,
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
216 String pSpatialColumnName, String pWhere,
267
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
217 Geometry g, String[] pReturnFields, String byClause)
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
218 throws SQLException {
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
219 log.debug("executeQuery()");
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
220 try {
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
221 // get the layer for querying
543
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
222 boolean isRaster = pSpatialColumnName.equalsIgnoreCase("raster");
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
223
266
1530890b28c9 Added SFS-Support to ArcSDE-Query-Part without any Spatial restriction in the where clause
Tim Englich <tim.englich@intevation.de>
parents: 263
diff changeset
224 SeShapeFilter[] filters = null;
1530890b28c9 Added SFS-Support to ArcSDE-Query-Part without any Spatial restriction in the where clause
Tim Englich <tim.englich@intevation.de>
parents: 263
diff changeset
225 if (g != null){
543
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
226 if (!isRaster){
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
227 SeLayer lLayer = new SeLayer(con, pLayername[0], pSpatialColumnName);
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
228 SeShape shape = new SeShape();
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
229 shape.setCoordRef(lLayer.getCoordRef());
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
230
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
231 SDEPoint[] lPoints = new ArcSDEUtils().createPoints(g);
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
232
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
233 int searchMode = SeFilter.METHOD_AI;
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
234 if (g instanceof Polygon){
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
235 shape.generatePolygon(lPoints.length, 1, null, lPoints);
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
236 }else if (g instanceof Point){
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
237 shape.generatePoint(1, lPoints);
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
238 searchMode = SeFilter.METHOD_PC;
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
239 }
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
240
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
241 SeShapeFilter filter = new SeShapeFilter(pLayername[0],
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
242 pSpatialColumnName, shape,searchMode);
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
243 filters = new SeShapeFilter[1];
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
244 filters[0] = filter;
383
0b813ae17173 Added Point in Polygon Query Support to ArcSDE-Statement-Processing
Tim Englich <tim.englich@intevation.de>
parents: 380
diff changeset
245 }
266
1530890b28c9 Added SFS-Support to ArcSDE-Query-Part without any Spatial restriction in the where clause
Tim Englich <tim.englich@intevation.de>
parents: 263
diff changeset
246 }
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
247
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
248 SeQuery spatialQuery = null;
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
249 SeSqlConstruct sqlCons = new SeSqlConstruct(pLayername, pWhere);
267
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
250 spatialQuery = new SeQuery(con);//, pReturnFields, sqlCons);
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
251
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
252 SeQueryInfo queryInfo = new SeQueryInfo();
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
253 queryInfo.setColumns(pReturnFields);
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
254
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
255 if (byClause != null){
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
256 queryInfo.setByClause(byClause);
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
257 }
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
258
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
259 queryInfo.setConstruct(sqlCons);
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
260 spatialQuery.prepareQueryInfo(queryInfo);
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
261
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
262 /*
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
263 * Set spatial constraints
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
264 */
266
1530890b28c9 Added SFS-Support to ArcSDE-Query-Part without any Spatial restriction in the where clause
Tim Englich <tim.englich@intevation.de>
parents: 263
diff changeset
265 if (filters != null){
1530890b28c9 Added SFS-Support to ArcSDE-Query-Part without any Spatial restriction in the where clause
Tim Englich <tim.englich@intevation.de>
parents: 263
diff changeset
266 spatialQuery.setSpatialConstraints(SeQuery.SE_OPTIMIZE, false,
1530890b28c9 Added SFS-Support to ArcSDE-Query-Part without any Spatial restriction in the where clause
Tim Englich <tim.englich@intevation.de>
parents: 263
diff changeset
267 filters);
1530890b28c9 Added SFS-Support to ArcSDE-Query-Part without any Spatial restriction in the where clause
Tim Englich <tim.englich@intevation.de>
parents: 263
diff changeset
268 }
543
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
269
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
270 if (!isRaster){
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
271 spatialQuery.execute();
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
272 }
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
273
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
274 return this.handleResultSet(spatialQuery,isRaster,g);
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
275
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
276 } catch (Exception e) {
267
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
277 if (e instanceof SeException){
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
278 ArcSDEUtils.printError((SeException)e);
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
279 }else{
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
280 log.error(e.getMessage(), e);
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
281 }
000e00592ba5 Added InnerJoin, Order By and Group By Support to Spatial-Queries
Tim Englich <tim.englich@intevation.de>
parents: 266
diff changeset
282
263
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
283 throw new SQLException(e.getMessage());
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
284 }
031ef9649cd1 Added SFS-Support to ArcSDE-Query-Part
Tim Englich <tim.englich@intevation.de>
parents: 143
diff changeset
285 }
130
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
286
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
287 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
288 * @see java.sql.Statement#executeUpdate(java.lang.String)
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
289 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
290 public int executeUpdate(String arg0) throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
291
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
292 return 0;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
293 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
294
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
295 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
296 * @see java.sql.Statement#executeUpdate(java.lang.String, int)
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
297 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
298 public int executeUpdate(String arg0, int arg1) throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
299
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
300 return 0;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
301 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
302
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
303 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
304 * @see java.sql.Statement#executeUpdate(java.lang.String, int[])
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
305 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
306 public int executeUpdate(String arg0, int[] arg1) throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
307
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
308 return 0;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
309 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
310
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
311 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
312 * @see java.sql.Statement#executeUpdate(java.lang.String, java.lang.String[])
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
313 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
314 public int executeUpdate(String arg0, String[] arg1) throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
315
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
316 return 0;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
317 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
318
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
319 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
320 * @see java.sql.Statement#getConnection()
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
321 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
322 public Connection getConnection() throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
323 return this.connection;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
324 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
325
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
326 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
327 * @see java.sql.Statement#getFetchDirection()
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
328 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
329 public int getFetchDirection() throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
330
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
331 return 0;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
332 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
333
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
334 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
335 * @see java.sql.Statement#getFetchSize()
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
336 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
337 public int getFetchSize() throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
338
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
339 return 0;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
340 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
341
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
342 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
343 * @see java.sql.Statement#getGeneratedKeys()
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
344 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
345 public ResultSet getGeneratedKeys() throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
346
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
347 return null;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
348 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
349
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
350 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
351 * @see java.sql.Statement#getMaxFieldSize()
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
352 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
353 public int getMaxFieldSize() throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
354
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
355 return 0;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
356 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
357
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
358 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
359 * @see java.sql.Statement#getMaxRows()
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
360 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
361 public int getMaxRows() throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
362
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
363 return 0;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
364 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
365
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
366 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
367 * @see java.sql.Statement#getMoreResults()
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
368 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
369 public boolean getMoreResults() throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
370
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
371 return false;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
372 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
373
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
374 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
375 * @see java.sql.Statement#getMoreResults(int)
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
376 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
377 public boolean getMoreResults(int arg0) throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
378
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
379 return false;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
380 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
381
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
382 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
383 * @see java.sql.Statement#getQueryTimeout()
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
384 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
385 public int getQueryTimeout() throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
386
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
387 return 0;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
388 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
389
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
390 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
391 * @see java.sql.Statement#getResultSet()
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
392 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
393 public ResultSet getResultSet() throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
394
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
395 return null;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
396 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
397
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
398 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
399 * @see java.sql.Statement#getResultSetConcurrency()
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
400 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
401 public int getResultSetConcurrency() throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
402
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
403 return 0;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
404 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
405
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
406 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
407 * @see java.sql.Statement#getResultSetHoldability()
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
408 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
409 public int getResultSetHoldability() throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
410
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
411 return 0;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
412 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
413
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
414 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
415 * @see java.sql.Statement#getResultSetType()
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
416 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
417 public int getResultSetType() throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
418
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
419 return 0;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
420 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
421
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
422 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
423 * @see java.sql.Statement#getUpdateCount()
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
424 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
425 public int getUpdateCount() throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
426
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
427 return 0;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
428 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
429
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
430 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
431 * @see java.sql.Statement#getWarnings()
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
432 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
433 public SQLWarning getWarnings() throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
434
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
435 return null;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
436 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
437
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
438 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
439 * @see java.sql.Statement#setCursorName(java.lang.String)
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
440 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
441 public void setCursorName(String arg0) throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
442 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
443
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
444 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
445 * @see java.sql.Statement#setEscapeProcessing(boolean)
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
446 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
447 public void setEscapeProcessing(boolean arg0) throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
448 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
449
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
450 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
451 * @see java.sql.Statement#setFetchDirection(int)
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
452 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
453 public void setFetchDirection(int arg0) throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
454 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
455
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
456 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
457 * @see java.sql.Statement#setFetchSize(int)
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
458 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
459 public void setFetchSize(int arg0) throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
460 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
461
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
462 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
463 * @see java.sql.Statement#setMaxFieldSize(int)
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
464 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
465 public void setMaxFieldSize(int arg0) throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
466 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
467
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
468 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
469 * @see java.sql.Statement#setMaxRows(int)
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
470 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
471 public void setMaxRows(int arg0) throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
472 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
473
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
474 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
475 * @see java.sql.Statement#setQueryTimeout(int)
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
476 */
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
477 public void setQueryTimeout(int arg0) throws SQLException {
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
478 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
479
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
480 /**
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
481 * Copied from de.intevation.gnv.geobackend.sde.datasources.SDEQuery
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
482 * @param pSeQuery
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
483 * @return
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
484 * @throws SeException
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
485 */
543
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
486 private ResultSet handleResultSet(SeQuery pSeQuery, boolean isRaster, Geometry geometry) throws SeException {
130
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
487 log.debug("ArcSDEStatement,handleResultSet()");
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
488 SDEResultSet lSet = new SDEResultSet();
543
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
489 SeRow row = null;;
130
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
490 int lCount;
543
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
491 if (!isRaster){
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
492 for (lCount = 0; (row = pSeQuery.fetch()) != null; lCount++) {
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
493 // one time execution
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
494 if (lCount == 0) {
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
495 // analyze cols of result set
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
496 SeColumnDefinition[] lCols = row.getColumns();
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
497 for (SeColumnDefinition lCol : lCols) {
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
498 lSet.addCol(new ColDefinition(lCol.getName(), lCol.getType()));// notice: esri-types have been copied into colDefinition class!
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
499 }
130
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
500 }
543
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
501 short lNumCols = row.getNumColumns();
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
502 Row lBackingRow = new Row(lNumCols);
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
503 for (int i = 0; i < lNumCols; i++) {
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
504 lBackingRow.addObject(row.getObject(i), i);
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
505 }
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
506 lSet.addRow(lBackingRow);
130
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
507 }
543
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
508 }else{
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
509 try {
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
510
544
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
511 int rasterSize = 128;
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
512 pSeQuery.execute();
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
513 row = pSeQuery.fetch();
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
514 SeRasterAttr attr = row.getRaster(0);
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
515 SeRaster raster = attr.getRasterInfo();
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
516 SeRasterBand[] bands = raster.getBands();
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
517 SeRasterBand rasterBand = bands[0];
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
518
543
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
519
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
520 int height = rasterBand.getBandHeight();
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
521 int width = rasterBand.getBandWidth();
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
522
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
523 SeExtent extent = rasterBand.getExtent();
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
524 log.debug("Extent: "+ extent.getMinX() +" "+extent.getMinY()+" "+extent.getMaxX()+ " "+extent.getMaxY() );
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
525 log.debug("Querygeometry: "+geometry.toText());
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
526
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
527 double x = ((Point)geometry).getX();
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
528 double y = ((Point)geometry).getY();
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
529 boolean isPointInRaster = false;
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
530 if ((x >= extent.getMinX() && x <= extent.getMaxX()) && (y >= extent.getMinY() && y <= extent.getMaxY())){
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
531 isPointInRaster = true;
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
532 }
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
533
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
534 double dxNature = x - extent.getMinX();
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
535 double dyNature = extent.getMaxY() - y;//y-extent.getMinY();
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
536 double widthNature = extent.getMaxX()-extent.getMinX();
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
537 double heightNature = extent.getMaxY()-extent.getMinY();
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
538
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
539 int pixelX = (int)Math.round(dxNature * width / widthNature);
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
540 int pixelY = (int)Math.round(dyNature * height/ heightNature);
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
541
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
542 log.debug("Rasterdimesion (Pixel) " + width + " / " + height);
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
543 log.debug ("Required Pixel: " + pixelX + " / "+ pixelY);
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
544 int bandNumber = rasterBand.getBandNumber();
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
545 log.debug("BAND-ID "+rasterBand.getId().longValue());
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
546 int maxLevel = 0;
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
547 log.debug("Maxlevel: "+maxLevel);
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
548
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
549 if (isPointInRaster){
544
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
550
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
551 if (row == null){
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
552 pSeQuery.execute();
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
553 row = pSeQuery.fetch();
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
554 }
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
555 SeRasterConstraint constraint = new SeRasterConstraint();
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
556 constraint.setLevel(maxLevel);
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
557 constraint.setBands(bandNumber);
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
558 constraint.setEnvelope(pixelX / rasterSize, pixelY / rasterSize, pixelX / rasterSize, pixelY / rasterSize);
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
559 pSeQuery.queryRasterTile(constraint);
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
560 SeRasterTile tile = row.getRasterTile();
543
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
561
544
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
562 if(tile != null){
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
563 log.debug("BAND-ID Tile "+tile.getBandId().longValue());
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
564 log.debug("Pixel "+ tile.getNumPixels());
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
565 log.debug("Column / Row "+tile.getColumnIndex()+" / "+tile.getRowIndex());
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
566
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
567
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
568 double[] tileValues = new double[tile.getNumPixels()];
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
569 tileValues = tile.getPixels(tileValues);
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
570 lSet.addCol(new ColDefinition("tile",ColDefinition.FLOAT64));
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
571 Row lBackingRow = new Row(1);
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
572 Envelope envelope = new Envelope(
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
573 new Coordinate(extent.getMinX(),
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
574 extent.getMinY()),
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
575 new Coordinate(extent.getMaxX(),
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
576 extent.getMaxY()));
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
577 RasterObject ro = new RasterObject(envelope,
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
578 tileValues,
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
579 rasterSize,
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
580 tile.getRowIndex(),
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
581 tile.getColumnIndex(),
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
582 width,
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
583 height);
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
584 lBackingRow.addObject(ro,0);
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
585 lSet.addRow(lBackingRow);
33f93898cbbf Added RasterObject for caching the Rastertiles to get a better performance
Tim Englich <tim.englich@intevation.de>
parents: 543
diff changeset
586 }
543
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
587
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
588 }else{
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
589 log.debug("The Query doesn't deliver any Information because the Point is located outside the Raster.");
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
590 }
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
591 } catch (Exception e) {
fac02bf1c685 Added Rasterdatasupport to the ARCSDE-Statement
Tim Englich <tim.englich@intevation.de>
parents: 383
diff changeset
592 log.error(e,e);
130
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
593 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
594 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
595 pSeQuery.close();
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
596 return lSet;
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
597 }
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
598
380
0100ebf6630f Added missing Methodstubs for Java 1.6 compability.
Tim Englich <tim.englich@intevation.de>
parents: 377
diff changeset
599 public boolean isClosed() throws SQLException {
0100ebf6630f Added missing Methodstubs for Java 1.6 compability.
Tim Englich <tim.englich@intevation.de>
parents: 377
diff changeset
600 return false;
0100ebf6630f Added missing Methodstubs for Java 1.6 compability.
Tim Englich <tim.englich@intevation.de>
parents: 377
diff changeset
601 }
0100ebf6630f Added missing Methodstubs for Java 1.6 compability.
Tim Englich <tim.englich@intevation.de>
parents: 377
diff changeset
602
0100ebf6630f Added missing Methodstubs for Java 1.6 compability.
Tim Englich <tim.englich@intevation.de>
parents: 377
diff changeset
603 public boolean isPoolable() throws SQLException {
0100ebf6630f Added missing Methodstubs for Java 1.6 compability.
Tim Englich <tim.englich@intevation.de>
parents: 377
diff changeset
604 return false;
0100ebf6630f Added missing Methodstubs for Java 1.6 compability.
Tim Englich <tim.englich@intevation.de>
parents: 377
diff changeset
605 }
0100ebf6630f Added missing Methodstubs for Java 1.6 compability.
Tim Englich <tim.englich@intevation.de>
parents: 377
diff changeset
606
0100ebf6630f Added missing Methodstubs for Java 1.6 compability.
Tim Englich <tim.englich@intevation.de>
parents: 377
diff changeset
607 public void setPoolable(boolean arg0) throws SQLException {
0100ebf6630f Added missing Methodstubs for Java 1.6 compability.
Tim Englich <tim.englich@intevation.de>
parents: 377
diff changeset
608 }
0100ebf6630f Added missing Methodstubs for Java 1.6 compability.
Tim Englich <tim.englich@intevation.de>
parents: 377
diff changeset
609
0100ebf6630f Added missing Methodstubs for Java 1.6 compability.
Tim Englich <tim.englich@intevation.de>
parents: 377
diff changeset
610 public boolean isWrapperFor(Class<?> iface) throws SQLException {
0100ebf6630f Added missing Methodstubs for Java 1.6 compability.
Tim Englich <tim.englich@intevation.de>
parents: 377
diff changeset
611 return false;
0100ebf6630f Added missing Methodstubs for Java 1.6 compability.
Tim Englich <tim.englich@intevation.de>
parents: 377
diff changeset
612 }
0100ebf6630f Added missing Methodstubs for Java 1.6 compability.
Tim Englich <tim.englich@intevation.de>
parents: 377
diff changeset
613
0100ebf6630f Added missing Methodstubs for Java 1.6 compability.
Tim Englich <tim.englich@intevation.de>
parents: 377
diff changeset
614 public <T> T unwrap(Class<T> iface) throws SQLException {
0100ebf6630f Added missing Methodstubs for Java 1.6 compability.
Tim Englich <tim.englich@intevation.de>
parents: 377
diff changeset
615 return null;
0100ebf6630f Added missing Methodstubs for Java 1.6 compability.
Tim Englich <tim.englich@intevation.de>
parents: 377
diff changeset
616 }
0100ebf6630f Added missing Methodstubs for Java 1.6 compability.
Tim Englich <tim.englich@intevation.de>
parents: 377
diff changeset
617
130
e4eacd613356 Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
618 }

http://dive4elements.wald.intevation.org