On 16/10/2009 22:04, ULS Tech Support wrote:
Hi there,

Please start a completely new email for each thread. Replacing the subject line doesn't count, it's called thread hijacking.

p


Tomcat 5.5.9, using jTDS, with SQL Server 2005 i am getting this issue.

2009/10/16 10:47:15 - sql exception:java.sql.SQLException: No current
row in the ResultSet.

This issue doesn't happen with TWFreeTDS (in fact, when i switch to
twfreetds it works fine).. but from my research so far, i may have been
wrong in the way i implemented it.

Here is the code.

public Vector queryPaged4(String strTableExt) throws SQLException {
dbRecords.removeAllElements();
boolean rc = true;

ResultSet rs_info = null;
boolean bTest = false;
DBItems temp = null;

//New **********
/* This will call a stored procedure, pass in the page # and
number to display on each page and will return the results
directly.
*/

CallableStatement call = dbConn.prepareCall("{call sp_PagedItems4
(?,?,?,?,?)}");
call.setString(1, strTableExt);
call.setString(2, filter);
call.setString(3, order);
call.setInt(4, pageNumber);
call.setInt(5, recsPerPage);

if (!call.execute())//Query
{
//No ResultSets Returned;
} else {

try {
rs_info = call.getResultSet();

//Save the total number of records (value) in queryPagedRecords
queryPagedRecords = rs_info.getInt("TotalRec");
queryPagedMore = rs_info.getInt("MoreRecords");
nLowestID = rs_info.getInt("FirstRec");
nHighestID = rs_info.getInt("LastRec");

if (queryPagedRecords > 0) {
//Test for another resultset.
boolean bTest = false;
bTest = call.getMoreResults();
//Next resultset established, let's get the data!
dbResultSet = call.getResultSet();

while (dbResultSet.next()) {
//System.out.println("2: " + dbResultSet.getInt("ID"));
rc = true;

//Set the items object based on the resultset.
temp = this.setItemsObject(true, dbResultSet);

dbRecords.addElement(temp);
}
}
} catch (SQLException e) {
System.out.println("SQLException: " + e);
System.out.println("SQLException Message: " + e.getMessage());
} finally {
rs_info = null;
temp = null;
dbResultSet = null;
}
System.out.println("end");
}

return dbRecords;
}

Basically i'm getting the resultsets, but i'm not able to pull the data
from the resultsets as i get the error when i try and getInt.

Does anyone have any clue on why this is happening, or how i can make
this work?

I did try and modify the code to the following to see if it helped, but
again, i'm still stumped on HOW to retrieve the data from the resultsets.

try {
System.out.println("start...");
int updateCount = 0;
updateCount = call.getUpdateCount();
System.out.println("update count = " + updateCount);
boolean moreResults = true;
while (updateCount >= 0 || moreResults) {
if (!moreResults) {
// just eat it
updateCount = call.getUpdateCount();
System.out.println("\nupdateCount= " + updateCount);
} else {
// get the data
if (rs_info == null) {
rs_info = call.getResultSet();
} else {
dbResultSet = call.getResultSet();
}

//Save the total number of records (value) in queryPagedRecords
System.out.println("Got Data, how to process??");
} // if ! moreResults else
moreResults = call.getMoreResults();
System.out.println("More Results??");
} // while

//rs_info.setFetchSize();
System.out.println("Lets get data from rs_info");
queryPagedRecords = rs_info.getInt("TotalRec");
queryPagedMore = rs_info.getInt("MoreRecords");
nLowestID = rs_info.getInt("FirstRec");
nHighestID = rs_info.getInt("LastRec");

But it stops at the "queryPagedRecords = rs_info.getInt("TotalRec");"

Thanks in advance to anyone who can help.

...Robin




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to