Hello Bart, > Le 28 mai 2017 à 13:03, Bart Smissaert <bart.smissa...@gmail.com> a écrit : > > Using SQLite3 3.19.0 on a Windows machine. > I have some general questions about sqlite3_reset and > sqlite3_clear_bindings: > I am processing data from a 2D variant array (this is VB6). > > 1. I understand that after processing a row (binding all the values in a > row of that variant array) > I need to do either sqlite3_clear_bindings or make sure the next row has > all the values bound > either with a value (eg with sqlite3_bind_int) or with sqlite3_bind_null. > Now if I am sure that there are always values to be bound (so I will never > need sqlite3_bind_null) then I don't need sqlite3_clear_bindings. If there > are empty array elements however then I could either do sqlite3_bind_null > or always do sqlite3_clear_bindings after processing a row. > In general what would be the most efficient approach? I suppose the only > way to find out is testing, but maybe somebody can shred some light on this.
You are responsible for binding correct values before executing any statement. Calling sqlite3_clear_bindings does the same thing as calling sqlite3_bind_null for all arguments. > 2. Is there any difference in the order of doing sqlite3_reset and > sqlite3_clear_bindings? I personnally call sqlite3_reset before sqlite3_clear_bingings with great success, but I don't know if the order is relevant or not. > 3. Is there any point in checking the return value of > sqlite3_clear_bindings, especially if it was > already preceded by a successful sqlite3_reset? > > 4. Is there any point in checking the return value of sqlite3_reset if > there was a successful > sqlite3_bind_XXX preceding it? 3, 4: is there any point *not* checking a result code whenever you are given the opportunity to? Of course you have to check it. The two functions perform a different job, and may fail for different reasons. For example, sqlite3_reset() will return an error if a previous execution of the statement has returned an error. I'm almost sure sqlite3_clear_bindings does not. Happy SQLite :-) Gwendal _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users