01: // jTDS JDBC Driver for Microsoft SQL Server and Sybase
02: // Copyright (C) 2004 The jTDS Project
03: //
04: // This library is free software; you can redistribute it and/or
05: // modify it under the terms of the GNU Lesser General Public
06: // License as published by the Free Software Foundation; either
07: // version 2.1 of the License, or (at your option) any later version.
08: //
09: // This library is distributed in the hope that it will be useful,
10: // but WITHOUT ANY WARRANTY; without even the implied warranty of
11: // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12: // Lesser General Public License for more details.
13: //
14: // You should have received a copy of the GNU Lesser General Public
15: // License along with this library; if not, write to the Free Software
16: // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17: //
18: package net.sourceforge.jtds.test;
19:
20: import java.sql.SQLException;
21: import java.sql.PreparedStatement;
22: import java.sql.Savepoint;
23:
24: /**
25: * JDBC 3.0-only tests for Connection.
26: *
27: * @author Alin Sinpalean
28: * @version $Id: ConnectionJDBC3Test.java,v 1.1 2005/06/03 12:08:55 alin_sinpalean Exp $
29: */
30: public class ConnectionJDBC3Test extends DatabaseTestCase {
31:
32: public ConnectionJDBC3Test(String name) {
33: super (name);
34: }
35:
36: /**
37: * Test that temporary procedures created within transactions with
38: * savepoints which are released are still kept in the procedure cache.
39: *
40: * @test.manual when testing, prepareSQL will have to be set to 1 to make
41: * sure temp procedures are used
42: */
43: public void testSavepointRelease() throws SQLException {
44: // Manual commit mode
45: con.setAutoCommit(false);
46: // Create two savepoints
47: Savepoint sp1 = con.setSavepoint();
48: Savepoint sp2 = con.setSavepoint();
49: // Create and execute a prepared statement
50: PreparedStatement stmt = con.prepareStatement("SELECT 1");
51: assertTrue(stmt.execute());
52: // Release the inner savepoint and rollback the outer
53: con.releaseSavepoint(sp2);
54: con.rollback(sp1);
55: // Now make sure the temp stored procedure still exists
56: assertTrue(stmt.execute());
57: // Release resources
58: stmt.close();
59: con.close();
60: }
61: }
|