> Calling sqlite3_clear_bindings does the same thing as calling
sqlite3_bind_null for all arguments.

Yes, I understand that, just thinking about efficiency.

> I personnally call sqlite3_reset before sqlite3_clear_bingings with great
success

I am doing the same now. Probably no difference there

> is there any point *not* checking a result code whenever you are given
the opportunity to?

Yes, there is if there is no possible way in that particular situation that
the result could be other than success.
If there was a successful sqlite3_step just preceding it could a
sqlite3_reset possibly be unsuccessful?
If there was a successful sqlite3_reset just preceding it could a
sqlite3_clear_bindings possibly be unsuccessful?


RBS




On Sun, May 28, 2017 at 12:14 PM, Gwendal Roué <gwendal.r...@gmail.com>
wrote:

> 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
>
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to