Revision 44198 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/CountOperation.java
CountOperation.java | ||
---|---|---|
5 | 5 |
import java.sql.SQLException; |
6 | 6 |
import java.sql.Statement; |
7 | 7 |
import org.apache.commons.lang3.StringUtils; |
8 |
import org.gvsig.expressionevaluator.ExpressionBuilder; |
|
8 | 9 |
import org.gvsig.fmap.dal.exception.DataException; |
9 | 10 |
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper; |
10 | 11 |
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase; |
11 | 12 |
import org.gvsig.fmap.dal.store.jdbc.exception.JDBCSQLException; |
12 | 13 |
import org.gvsig.fmap.dal.store.jdbc2.JDBCUtils; |
13 | 14 |
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference; |
15 |
import static org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase.PROP_FEATURE_TYPE; |
|
16 |
import static org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase.PROP_TABLE; |
|
14 | 17 |
|
15 | 18 |
public class CountOperation extends AbstractConnectionOperation { |
16 | 19 |
|
... | ... | |
47 | 50 |
String filter) throws DataException { |
48 | 51 |
|
49 | 52 |
JDBCSQLBuilderBase sqlbuilder = this.createSQLBuilder(); |
53 |
ExpressionBuilder expbuilder = sqlbuilder.expression(); |
|
50 | 54 |
|
51 | 55 |
sqlbuilder.select().column().value(sqlbuilder.count().all()); |
52 | 56 |
sqlbuilder.select().from().table() |
... | ... | |
55 | 59 |
.name(this.table.getTable()); |
56 | 60 |
sqlbuilder.select().from().subquery(this.table.getSubquery()); |
57 | 61 |
if (!StringUtils.isEmpty(baseFilter)) { |
58 |
sqlbuilder.select().where().set( sqlbuilder.custom(baseFilter) );
|
|
62 |
sqlbuilder.select().where().set( expbuilder.custom(baseFilter) );
|
|
59 | 63 |
} |
60 | 64 |
if (!StringUtils.isEmpty(filter)) { |
61 | 65 |
// El and() hace un set() si no hay un filtro previo |
62 |
sqlbuilder.select().where().and(sqlbuilder.custom(filter));
|
|
66 |
sqlbuilder.select().where().and(expbuilder.custom(filter));
|
|
63 | 67 |
} |
64 |
|
|
68 |
sqlbuilder.setProperties( |
|
69 |
ExpressionBuilder.Variable.class, |
|
70 |
PROP_TABLE, table |
|
71 |
); |
|
65 | 72 |
String sql = sqlbuilder.select().toString(); |
66 | 73 |
|
67 | 74 |
Statement st = null; |
Also available in: Unified diff