Mike, as the docs on the page http://www.sqlite.org/c3ref/stmt.html says:
1. sqlite3_prepare_v2() 2. sqlite3_bind_*() 3. sqlite3_step() one or more times 4. sqlite3_reset() 5. goto 2 or sqlite3_finalize(). As you may know sqlite3_prepare_* compiles your SQL query into a VDBE micro-program with interpreted instructions how to execute the query. I see reasons why sometimes bind_* can just affect the contents of one register in this program and nothing more, but sometimes your new bindings can affect the way the micro-program is executed. I see some interesting variant of optimization in your question that is theoretically might be possible. For example your query contains some expresion about rowid evaluation (like rowid > ?) and on some step, the row you just read can contain a new information to bypass some of your following steps, for example initially you wanted to scan rows with rowid > 50 and now you're ready to bypass some of them and go to > 5000. Changing the binded value in this case looks like some kind of optimization, but speed advangage from my point of view is not very big since after _reset sqlite will jump to that new value almost as fast. But if your new value is lower than 50 (for example > 20), you will get logic error since the microcode has already passed values bigger than 20 and there's no way for the microcode to detect your new requirements and make conditional reset. So just always follow the pattern of calls described earlier Max On Sat, Jan 16, 2010 at 4:10 PM, Mike Johnston <mkejohns...@yahoo.com>wrote: > Using sqlite 3.6.22. Here's my sql > SELECT sno, lname, fname FROM addressbook where sno>? > Suppose your stepping through a 100 row result set. I'm calling > sqlite3_step(), getting my values all good. If I were to call > sqlite3_bind_int() function with a new value for my where clause at row 50, > does that cause the step to re-execute the entire SQL? Do I have to do a > reset, bind, step sequence ? > When does sqlite3_step() evaluate the bound values in the where clause? > Thank you,Mike > > > > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users