Hi,

I came across a problem with the new pointer-passing interface, when I tried to incorporate the carray extension into my wxSQLite3 wrapper for SQLite3.

In the comment of the sqlite3_bind_pointer() routine I found this note:

The T parameter should be a static string, preferably a string literal.

This comment is a bit misleading, since it doesn't become clear that the string pointer for T must be valid as long as the associated statement is active.

In my case this is quite cumbersome, since in my wrapper I have to extract the value of parameter T from a temporary string object. That is, shortly after having called sqlite3_bind_pointer the temporary string goes out of scope. The effect is that later on the function sqlite3_value_pointer usually can't see the correct type value anymore. Therefore sqlite3_value_pointer returns a NULL pointer ... and the carray table is empty.

IMHO it would be better if the function sqlite3_bind_pointer would make a copy of the type string and would thus be independent of the life span of the type parameter.

Regards,

Ulrich

_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to