On Sat, 7 Mar 2009 01:09:28 -0800 (PST), liubin liu <7101...@sina.com> wrote:
>I'm very happy that my question have triggerred the wiki-FAQ's question. > >but if the next version could solve(settle?) the question, >many guys will be happy, :) In my opinion, there is no problem, so there is nothing to solve. By the way, there is new code in the works which will improve the performance of COUNT(*) in some cases. See the timeline: http://www.sqlite.org/cvstrac/timeline 2009-Feb-24 and 2009-Feb-25 >and now, does it mean that we have to use link-list struct to write such >kind of codes when using "sqlite3_prepare_v2() + sqlite3_step() + >sqlite3_column_*()"? Perhaps the sqlite3_get_table() API is what you are looking for? http://www.sqlite.org/c3ref/free_table.html > >Kees Nuyt wrote: >> >> 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