[ http://issues.apache.org/jira/browse/DERBY-1183?page=all ]
Mike Matrigali updated DERBY-1183:
----------------------------------
Component: JDBC
> Client java.sql.ResultSet.getCursorName() does not return the correct cursor
> name for Statements after the first execution
> --------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-1183
> URL: http://issues.apache.org/jira/browse/DERBY-1183
> Project: Derby
> Type: Bug
> Components: JDBC
> Versions: 10.2.0.0
> Reporter: Kathey Marsden
>
> For client, if the cursor name is set with java.sql.Statement.setCursorName()
> the name set by the user only applies to the first execution. Subsequent
> executions use the default cursor name. To reproduce run the progam below as
> follows:
> D>java -Dframework=DerbyNetClient GetCursorName
> 10.2.0.0 alpha
> Apache Derby
> Apache Derby Network Client JDBC Driver
> rs.getCursorName():MyCursor
> rs.getCursorName():SQL_CURLH000C2
> With embedded it is ok:
> D>java GetCursorName
> 10.2.0.0 alpha
> Apache Derby
> Apache Derby Embedded JDBC Driver
> rs.getCursorName():MyCursor
> rs.getCursorName():MyCursor
> import java.sql.Connection;
> import java.sql.DatabaseMetaData;
> import java.sql.ResultSet;
> import java.sql.SQLException;
> import java.sql.Statement;
> import org.apache.derbyTesting.functionTests.util.TestUtil;
> class GetCursorName
> {
>
> public static void main (String args [])throws Exception
> {
> testGetCursorName();
> }
>
> public static void testGetCursorName() throws SQLException
> {
>
> Connection conn =
> TestUtil.getConnection("wombat","create=true");
> Statement stmt = null;
> ResultSet rs = null;
> DatabaseMetaData md = conn.getMetaData() ;
> System.out.println(md.getDatabaseProductVersion());
> System.out.println(md.getDatabaseProductName());
> System.out.println(md.getDriverName());
>
> stmt = conn.createStatement();
> // Setting the cursor name works for one execution ok.
> stmt.setCursorName("MyCursor");
> rs = stmt.executeQuery("select count(*) from sys.systables");
> System.out.println("rs.getCursorName():" + rs.getCursorName());
> rs.close();
> //Executing another query seems to clears the cursor name.
> // getCursorName() will print the default cursor name SQLXXX.
> rs = stmt.executeQuery("select count(*) from sys.systables");
> System.out.println("rs.getCursorName():" + rs.getCursorName());
> rs.close();
> stmt.close();
> conn.close();
> }
>
> }
> I noticed this bug when coverting the checkDataSource test for client.
> I will change that test to set the cursor name for each execution for client.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira