01: /*
02: * Copyright 2001-2007 Geert Bevin <gbevin[remove] at uwyn dot com>
03: * Distributed under the terms of either:
04: * - the common development and distribution license (CDDL), v1.0; or
05: * - the GNU Lesser General Public License, v2.1 or later
06: * $Id: TestSequenceValue.java 3634 2007-01-08 21:42:24Z gbevin $
07: */
08: package com.uwyn.rife.database.queries;
09:
10: import com.uwyn.rife.database.Datasource;
11: import com.uwyn.rife.database.DbConnection;
12: import com.uwyn.rife.database.DbStatement;
13: import com.uwyn.rife.database.exceptions.DatabaseException;
14:
15: public abstract class TestSequenceValue extends TestQuery {
16: public TestSequenceValue(String name) {
17: super (name);
18: }
19:
20: public int execute(Datasource datasource, SequenceValue query) {
21: int result = -1;
22:
23: try {
24: DbConnection connection = datasource.getConnection();
25:
26: CreateSequence create_sequence = new CreateSequence(
27: datasource);
28: create_sequence.name(query.getName());
29: connection.createStatement().executeUpdate(create_sequence);
30:
31: DbStatement statement = connection.createStatement();
32: statement.executeQuery(new SequenceValue(datasource).name(
33: query.getName()).next());
34: statement = connection.createStatement();
35: statement.executeQuery(query);
36: if (statement.getResultSet().hasResultRows()) {
37: result = statement.getResultSet().getFirstInt();
38: }
39:
40: connection.createStatement().executeUpdate(
41: new DropSequence(datasource).name(query.getName()));
42: } catch (DatabaseException e) {
43: throw new RuntimeException(e);
44: }
45:
46: return result;
47: }
48: }
|