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