ij> -- -- Licensed to the Apache Software Foundation (ASF) under one or more -- contributor license agreements. See the NOTICE file distributed with -- this work for additional information regarding copyright ownership. -- The ASF licenses this file to You under the Apache License, Version 2.0 -- (the "License"); you may not use this file except in compliance with -- the License. You may obtain a copy of the License at -- -- http://www.apache.org/licenses/LICENSE-2.0 -- -- Unless required by applicable law or agreed to in writing, software -- distributed under the License is distributed on an "AS IS" BASIS, -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -- See the License for the specific language governing permissions and -- limitations under the License. -- -- create a table create table sethold(c1 int, c2 int); 0 rows inserted/updated/deleted ij> -- insert data into tables insert into sethold values(1,1); 1 row inserted/updated/deleted ij> insert into sethold values(2,2); 1 row inserted/updated/deleted ij> -- set autocommit off autocommit off; ij> -- first test - make sure that cursors created with default holdability -- have open resultsets after commit get cursor jdk1 as 'SELECT * FROM sethold'; ij> get scroll insensitive cursor jdk2 as 'SELECT * FROM sethold'; ij> -- do fetches from these cursors next jdk1; C1 |C2 ----------------------- 1 |1 ij> next jdk2; C1 |C2 ----------------------- 1 |1 ij> --commit and see if the cursors are still open commit; ij> next jdk1; C1 |C2 ----------------------- 2 |2 ij> next jdk2; C1 |C2 ----------------------- 2 |2 ij> -- second test - make sure that cursors created with holdability false -- do not have open resultsets after commit -- set NoHold, then declare 2 different kind of cursors and fetch from them NoHoldForConnection; ij> get cursor jdk3 as 'SELECT * FROM sethold'; ij> get scroll insensitive cursor jdk4 as 'SELECT * FROM sethold'; ij> -- do fetches from these cursors next jdk3; C1 |C2 ----------------------- 1 |1 ij> next jdk4; C1 |C2 ----------------------- 1 |1 ij> --commit and see if the cursors are still open commit; ij> next jdk3; ERROR XCL16: ResultSet not open. Operation 'next' not permitted. Verify that autocommit is off. ij> next jdk4; ERROR XCL16: ResultSet not open. Operation 'next' not permitted. Verify that autocommit is off. ij> -- third test - make sure that cursors created with holdability true -- have open resultsets after commit -- set Hold, then declare 2 different kind of cursors and fetch from them HoldForConnection; ij> get cursor jdk5 as 'SELECT * FROM sethold'; ij> get scroll insensitive cursor jdk6 as 'SELECT * FROM sethold'; ij> -- do fetches from these cursors next jdk5; C1 |C2 ----------------------- 1 |1 ij> next jdk6; C1 |C2 ----------------------- 1 |1 ij> --commit commit; ij> next jdk5; C1 |C2 ----------------------- 2 |2 ij> next jdk6; C1 |C2 ----------------------- 2 |2 ij> -- fourth test - make sure that we get the same behavior as before after -- setting the holdability to No Hold again. -- set NoHold, then declare 2 different kind of cursors and fetch from them NoHoldForConnection; ij> get cursor jdk7 as 'SELECT * FROM sethold'; ij> get scroll insensitive cursor jdk8 as 'SELECT * FROM sethold'; ij> -- do fetches from these cursors next jdk7; C1 |C2 ----------------------- 1 |1 ij> next jdk8; C1 |C2 ----------------------- 1 |1 ij> --commit and see if the cursors are still open commit; ij> next jdk7; ERROR XCL16: ResultSet not open. Operation 'next' not permitted. Verify that autocommit is off. ij> next jdk8; ERROR XCL16: ResultSet not open. Operation 'next' not permitted. Verify that autocommit is off. ij> -- clean up. close jdk1; ij> close jdk2; ij> close jdk3; ij> close jdk4; ij> close jdk5; ij> close jdk6; ij> close jdk7; ij> close jdk8; ij> drop table sethold; 0 rows inserted/updated/deleted ij> commit; ij>