Revision 43479
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/operations/PerformChangesOperation.java | ||
---|---|---|
8 | 8 |
import org.gvsig.fmap.dal.DataTypes; |
9 | 9 |
import org.gvsig.fmap.dal.exception.DataException; |
10 | 10 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
11 |
import org.gvsig.fmap.dal.feature.FeatureReference; |
|
11 | 12 |
import org.gvsig.fmap.dal.feature.FeatureType; |
12 | 13 |
import org.gvsig.fmap.dal.feature.spi.FeatureProvider; |
13 | 14 |
import org.gvsig.fmap.dal.feature.spi.FeatureReferenceProviderServices; |
14 | 15 |
import org.gvsig.fmap.dal.feature.spi.FeatureStoreProvider; |
15 | 16 |
import org.gvsig.fmap.dal.feature.spi.SQLBuilderBase; |
16 |
import org.gvsig.fmap.dal.resource.exception.AccessResourceException; |
|
17 | 17 |
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper; |
18 | 18 |
import org.gvsig.fmap.dal.store.jdbc.exception.JDBCExecuteSQLException; |
19 | 19 |
import org.gvsig.fmap.dal.store.jdbc.exception.JDBCSQLException; |
... | ... | |
121 | 121 |
try { |
122 | 122 |
st = conn.prepareStatement(sql); |
123 | 123 |
while (deleteds.hasNext()) { |
124 |
FeatureProvider featureProvider = (FeatureProvider) deleteds.next();
|
|
125 |
sqlbuilder.setParameters(st, featureProvider);
|
|
124 |
FeatureReference reference = (FeatureReference) deleteds.next();
|
|
125 |
sqlbuilder.setParameters(st, reference);
|
|
126 | 126 |
int nAffected = JDBCUtils.executeUpdate(st,sql); |
127 | 127 |
if (nAffected == 0) { |
128 | 128 |
throw new JDBCUpdateWithoutChangesException( |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/JDBCSQLBuilderBase.java | ||
---|---|---|
3 | 3 |
import java.sql.PreparedStatement; |
4 | 4 |
import java.util.ArrayList; |
5 | 5 |
import java.util.List; |
6 |
import org.gvsig.fmap.dal.feature.FeatureReference; |
|
6 | 7 |
import org.gvsig.fmap.dal.feature.spi.SQLBuilderBase; |
7 | 8 |
import org.gvsig.fmap.dal.feature.spi.FeatureProvider; |
9 |
import org.gvsig.fmap.dal.feature.spi.FeatureReferenceProviderServices; |
|
8 | 10 |
import org.gvsig.fmap.dal.store.jdbc2.JDBCUtils; |
11 |
import org.gvsig.tools.service.spi.ProviderServices; |
|
9 | 12 |
|
10 | 13 |
public class JDBCSQLBuilderBase extends SQLBuilderBase { |
11 | 14 |
|
... | ... | |
53 | 56 |
} |
54 | 57 |
} |
55 | 58 |
|
59 |
public void setParameters(PreparedStatement st, FeatureReference reference) { |
|
60 |
try { |
|
61 |
|
|
62 |
List<Object> values = new ArrayList<>(); |
|
63 |
for (Parameter parameter : this.getParameters()) { |
|
64 |
if (parameter.is_constant()) { |
|
65 |
values.add(parameter.getValue()); |
|
66 |
} else { |
|
67 |
String name = parameter.getName(); |
|
68 |
values.add(((FeatureReferenceProviderServices)reference).getKeyValue(name)); |
|
69 |
} |
|
70 |
} |
|
71 |
JDBCUtils.setObjects(st, values, this.geometry_support_type()); |
|
72 |
} catch (Exception ex) { |
|
73 |
String f = "unknow"; |
|
74 |
try { |
|
75 |
f = reference.toString(); |
|
76 |
} catch (Exception ex2) { |
|
77 |
// Do nothing |
|
78 |
} |
|
79 |
throw new RuntimeException("Can't set parameters to prepared statement from the feature (" + f + ")", ex); |
|
80 |
} |
|
81 |
} |
|
82 |
|
|
56 | 83 |
} |
Also available in: Unified diff