Skip to Main Content

Java Database Connectivity (JDBC)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

How to get the number of rows in a ResultSet

428490May 25 2005 — edited May 26 2005
Hello,
I'm an intern and I'm trying to get the number of rows from result set in oracle using rs.last() and rs.beforeFirst() methods but I got an error. Could Below is my sample code:

import java.sql.*;

public class SarueckConnect {

public static void main(String[] args) {

Connection con = null;
Statement stmt = null;
ResultSet re = null;

String[] ParamArray;
ParamArray = new String[24];

//Properties logon;
try {
Class.forName("oracle.jdbc.driver.OracleDriver"); //Loading the Oracle Driver.
con = DriverManager.getConnection
("jdbc:oracle:thin:@258.8.159.215:1521:test_DB","data","data"); //making the connection DB.
stmt = con.createStatement ();// Sending a query string to the database
//stmt.executeUpdate("UPDATE test_table set steuk = 6 WHERE steuk = 5");
ResultSet rs = stmt.executeQuery("SELECT mandt,kokrs,werks,arbpl,aufnr,vornr,ile01,"+
"lsa01,ism01,ile02,lsa02,ism02,ile03,lsa03,ism03,ile04,lsa04,ism04,steuk,matnr,budat,"+
"kostl,pernr,rueckid FROM test_table where steuk =6");

//Print the result out.

rs.last(); //This is the line which give an error.
int rows = rs.getRow();
rs.beforeFirst();// I presume this is wrong to.

ParamArray = new String[24*rows];

int counter=0;

while (rs.next()) {
for (int i = 1; i <= 24; i++){

ParamArray[i-1+(counter*24)] = rs.getString(i);

System.out.print(rs.getString(i) + '\t');
}
System.out.println();
counter++;
}

} catch(Exception e) {
e.printStackTrace();

} finally {
try
{
if(stmt != null) stmt.close();

if(con != null) con.close();

} catch (Exception exception) {
exception.printStackTrace();
} }


TryBapi sap = new TryBapi(ParamArray);
}
}

When I run the code I do have the following ERROR Message:

java.sql.SQLException: Invalid operation for forward only resultset : last
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.driver.BaseResultSet.last(BaseResultSet.java:91)
at SarueckConnect.main(SarueckConnect.java:28)

Please could any body Help me out here to figure out how to correct this?
Any Help would be highly apprecited.
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jun 23 2005
Added on May 25 2005
3 comments
1,258 views