SQLite C 接口

保存数据库文件的文件夹的名称

SQLITE_EXTERN char *sqlite3_data_directory;

如果这个全局变量指向一个字符串,它是一个文件夹(又名目录)的名称,那么所有使用相对路径名指定并在使用内置 Windows VFS时由 SQLite 创建或访问的数据库文件将被假定为相对于该目录。如果此变量是 NULL 指针,则 SQLite 假定所有使用相对路径名指定的数据库文件都相对于进程的当前目录。只有 Windows VFS 使用这个全局变量;它被 unix VFS 忽略。

在数据库连接打开时更改此变量的值可能会导致数据库损坏。

一次在多个线程中读取或修改此变量是不安全的。如果在单独的线程中同时使用数据库连接,则读取或修改此变量是不安全的。旨在将此变量设置为进程初始化的一部分,并在调用任何 SQLite 接口例程之前设置一次,此后此变量保持不变。

data_store_directory pragma可能会修改此变量并使其指向从sqlite3_malloc获得的内存。此外,data_store_directory pragma始终假定此变量指向的任何字符串都保存在从 sqlite3_malloc获得的内存中,并且 pragma 可能会尝试使用sqlite3_free释放该内存。因此,如果直接修改此变量,则应将其设置为 NULL 或指向从sqlite3_malloc获得的内存, 否则应避免 使用data_store_directory pragma 。

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