Received: from mail.retep.org.uk ([216.126.85.184]) by mail.postgresql.org (8.11.1/8.11.1) with ESMTP id f0IFN9064250 for ; Thu, 18 Jan 2001 10:23:09 -0500 (EST) (envelope-from peter@retep.org.uk) Received: (from nobody@localhost) by mail.retep.org.uk (8.11.1/8.11.1) id f0IFN7o64239; Thu, 18 Jan 2001 10:23:07 -0500 (EST) (envelope-from peter@retep.org.uk) X-Authentication-Warning: mail.retep.org.uk: nobody set sender to peter@retep.org.uk using -f To: Michael Stephenson Subject: Re: Number of rows in a ResultSet ? Message-ID: <979831387.3a670a5b6ed23@webmail.retep.org.uk> Date: Thu, 18 Jan 2001 10:23:07 -0500 (EST) From: Peter T Mount Cc: pgsql-interfaces@postgresql.org References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit User-Agent: IMP/PHP IMAP webmail program 2.2.3 X-Archive-Number: 200101/195 X-Sequence-Number: 813 Quoting Michael Stephenson : > > I need to know how many rows exist in a ResultSet. I've tried to use > > getFetchSize() method of ResultSet interface, but a message was > > displayed "this method is not yet implemented". > > > > Anyone can help me ? > > You could use: > ResultSet.last(); > int numberOfRows = ResultSet.getRow(); > > Now, my understanding of this area is a but sketchy, but I think that > most implementations of ResultSet do not get all of the results in one > go > (like the PostgreSQL JDBC driver does), so getFetchSize() is not a safe > way of determining the number of results returned. Until about 30 minutes ago getFetchSize() threw an SQLException as it wasn't implemented ;-) For normal ResultSet's in 7.1 getFetchSize() will return the number of rows, but I'd advise you use Michael's suggestion as it's probably the safest bet for TYPE_SCROLL_INSENSITIVE & TYPE_SCROLL_SENSITIVE ResultSets (remember technically TYPE_FORWARD_ONLY ResultSet's should not allow you to go back after the .last() call). Peter > > Or, you could do another query with count() in your sql.. > > Or (and I wouldn't do this without carefully looking at the jdbc spec), > you could just alter the getFetchSize() method > org.postgresql.jdbc2.ResultSet driver to look like: > > public int getFetchSize() throws SQLException > { > return rows.size(); > } > > The choice is yours.. > > Michael Stephenson mstephenson@openworld.co.uk > Developer - Web Applications - Open World > Tel: +44 1225 444 950 Fax: +44 1225 336 738 > > -- Peter Mount peter@retep.org.uk PostgreSQL JDBC Driver: http://www.retep.org.uk/postgres/ RetepPDF PDF library for Java: http://www.retep.org.uk/pdf/