c++ - Are the column count and column decltypes invariant for the duration of the execution of a SQLite prepared statement? -
when @ code other folks have written using sqlite3 c api, find sqlite3_column_decltype
, sqlite3_column_count
called inner loop (once per result row).
my understanding of database these values never change if statement re-compiled (see the bit sqlite3_prepare_v2
).
so should able call these once , cache them after call sqlite3_prepare
.
the columns' declared types can change, if use same statement in 2 transactions , database schema changed between them. in same situation, column count can change, if query using select *
.
however, single query execution inside transaction (either manual or automatic one). if cache values after call sqlite3_prepare_v2()
, use them until next call sqlite3_reset()
/sqlite3_finalize()
, fine. can cache them longer if ensure uses inside same transaction.
Comments
Post a Comment