SQLite C 接口

准备标志

#define SQLITE_PREPARE_PERSISTENT              0x01
#define SQLITE_PREPARE_NORMALIZE               0x02
#define 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)。

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