Small. Fast. Reliable.
Choose any three.

SQLite C接口

准备标志

#定义SQLITE_PREPARE_PERSISTENT 0x01
#定义SQLITE_PREPARE_NORMALIZE 0x02
#定义SQLITE_PREPARE_NO_VTAB 0x04

这些常量定义了各种标志,可以将这些标志传递到sqlite3_prepare_v3()sqlite3_prepare16_v3()接口的“ prepFlags”参数中。

将来的SQLite版本中可能会添加新的标志。

SQLITE_PREPARE_PERSISTENT
SQLITE_PREPARE_PERSISTENT标志向查询计划者提示已准备好的语句将保留很长时间,并且可能会多次重复使用。如果没有此标志,则sqlite3_prepare_v3()sqlite3_prepare16_v3()假定已准备好的语句将仅使用一次或最多使用几次,然后相对较快地使用sqlite3_finalize()销毁 。当前的实现方式通过避免使用后备内存来避免这种情况,以免耗尽后备内存的有限存储。SQLite的未来版本可能对此提示有所不同。

SQLITE_PREPARE_NORMALIZE
SQLITE_PREPARE_NORMALIZE标志是无操作的。对于要使用sqlite3_normalized_sql()接口的任何准备好的语句,以前都需要此标志 。但是, sqlite3_normalized_sql()接口现在可用于所有准备好的语句,无论它们是否使用此标志。

SQLITE_PREPARE_NO_VTAB
如果语句使用任何虚拟表,则SQLITE_PREPARE_NO_VTAB标志使SQL编译器返回错误(错误代码SQLITE_ERROR)。

另请参见 对象常量函数的列表