/* * Copyright 2001-2008 Geert Bevin <gbevin[remove] at uwyn dot com> * Licensed under the Apache License, Version 2.0 (the "License") * $Id: TestSequenceValue.java 3918 2008-04-14 17:35:35Z gbevin $ */ package com.uwyn.rife.database.queries; import com.uwyn.rife.database.Datasource; import com.uwyn.rife.database.DbConnection; import com.uwyn.rife.database.DbStatement; import com.uwyn.rife.database.exceptions.DatabaseException; public abstract class TestSequenceValue extends TestQuery { public TestSequenceValue(String name) { super(name); } public int execute(Datasource datasource, SequenceValue query) { int result = -1; try { DbConnection connection = datasource.getConnection(); CreateSequence create_sequence = new CreateSequence(datasource); create_sequence.name(query.getName()); connection.createStatement().executeUpdate(create_sequence); DbStatement statement = connection.createStatement(); statement.executeQuery(new SequenceValue(datasource).name(query.getName()).next()); statement = connection.createStatement(); statement.executeQuery(query); if (statement.getResultSet().hasResultRows()) { result = statement.getResultSet().getFirstInt(); } connection.createStatement().executeUpdate(new DropSequence(datasource).name(query.getName())); } catch (DatabaseException e) { throw new RuntimeException(e); } return result; } }