On Thu, 24 Mar 2005, David Gagnon wrote:
> Hi Kris, > > I don't get error with the rsTmp.close() statement but with " > (rsTmp.next()) ". The arraycopy is because I want to shrink the > original array (size 50) to it real size. It's not intended to be a > deep copy. Right, my bad. I see nothing wrong with your code, but you haven't included a complete example. There aren't any thread safety problems in your code where the executePreparedStatementQueryMultipleCursor function is called simultaneously? I've attached the test code I've used to verify that this is not a driver problem. Kris Jurka
import java.sql.*; public class MultRefCursor { public static void main(String args[]) throws Exception { Class.forName("org.postgresql.Driver"); Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/jurka","jurka",""); Statement stmt = conn.createStatement(); stmt.execute("CREATE OR REPLACE FUNCTION multcurfunc() RETURNS SETOF refcursor AS 'DECLARE ref1 refcursor; ref2 refcursor; BEGIN OPEN ref1 FOR SELECT 1; RETURN NEXT ref1; OPEN ref2 FOR SELECT 2; RETURN next ref2; RETURN; END;' LANGUAGE plpgsql"); stmt.close(); conn.setAutoCommit(false); PreparedStatement ps = conn.prepareStatement("SELECT * FROM multcurfunc()"); ResultSet rs = ps.executeQuery(); while (rs.next()) { System.out.println(rs.getString(1)); ResultSet rs2 = (ResultSet)rs.getObject(1); while (rs2.next()) { System.out.println(rs2.getInt(1)); } rs2.close(); } rs.close(); ps.close(); conn.close(); } }
---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly