John Stanton <[EMAIL PROTECTED]> wrote: > Unit 5 wrote: > > Hello, > > > > I have just started playing with Sqlite. I was able > > to download the latest binary and start using it right > > away from a tclshell. It seems that the primary api > > is db eval command. > > > Look at the sqlite3_prepare and sqlite3_step API calls and perhaps > rethink your application. Using them you can very efficiently achieve > what you are looking to do, and do it conserving memory and other resources. > JS >
Unit 5 is using the vastly superior Tcl API. No need for such low-level things as sqlite3_prepare and sqlite3_step. He just needs to make creative use of "break" inside the body of the db eval statement. db eval {SELECT ....} { if {[menu_is_full]} break } Note, however, that one cannot UPDATE, INSERT, or DELETE from a table while it is being SELECTed, however. If you want to make changes to a table as you loop through it, you'll need to do something like this: foreach {rowid a b c ...} [db eval {SELECT rowid,a,b,c,...}] { db eval {UPDATE ... WHERE rowid=$rowid} } SQLite does not support cursors like client/server database engines do. -- D. Richard Hipp <[EMAIL PROTECTED]>