On Fri, 6 Mar 2009 02:15:10 -0800 (PST), liubin liu
<7101...@sina.com> wrote:

>which func could get the number of rows?

There is no function to retrieve the number of rows in a
result set. SQLite doesn't know the number in advance, but
returns row by row while iterating through the tables. The
application can increment a row counter as needed at every
successful sqlite3_step() .

Some wrappers are able to collect all rows in a resultset in
a in-memory table, so they can return the number of rows.

You can always get the number of rows that a certain SELECT
statement would return at the cost of some performance:

   BEGIN IMMEDIATE TRANSACTION;
   SELECT COUNT(*) FROM x WHERE y;
   SELECT a,b,c FROM x WHERE y;
   ROLLBACK TRANSACTION;

You have to wrap this in a transaction to prevent other
connections from inserting / deleting rows between the two
SELECT statements.
 
http://www.sqlite.org/lang_transaction.html

I hope this helps and I added it to the wiki FAQ:

http://www.sqlite.org/cvstrac/wiki?p=SqliteWikiFaq
-- 
  (  Kees Nuyt
  )
c[_]
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to