![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
![]()
Small. Fast. Reliable.
Choose any three. SQLite C InterfaceНазвание файлов базы данныхSQLITE_EXTERN char *sqlite3_data_directory; Если эта глобальная переменная будет указывать на последовательность, которая является названием каталога), то все файлы базы данных, определенные с относительным путем и созданные или полученные SQLite, используя встроенные VFS будут расположены относительно того каталога. Если эта переменная NULL, SQLite предполагает, что все файлы базы данных определены с относительным путем, относительно текущего каталога для процесса. Только windows VFS использует эту глобальную переменную, это проигнорировано Unix VFS. Изменение этой переменной, в то время как соединение с базой данных открыто, может привести к поврежденной базе данных. Небезопасно читать или менять эту переменную больше, чем в одном потоке за один раз. Небезопасно читать или менять эту переменную, если соединение с базой данных используется в то же время в отдельном потоке. Считается, что эта переменная установлена однажды как часть процесса инициализации прежде, чем любой интерфейс SQLite вызван, и что эта переменная остается неизменной после этого. Прагма data_store_directory может изменить эту переменную и заставить ее указывать на память, полученную из sqlite3_malloc. Кроме того, прагма data_store_directory всегда предполагает, что любая последовательность, на которую указывает эта переменная, проводится в памяти, полученной из sqlite3_malloc и прагма может попытаться освободить эту память, используя sqlite3_free. Следовательно, если эта переменная изменяется непосредственно, это должно быть сделано NULL или указать на память, полученную из sqlite3_malloc, иначе использования прагмы data_store_directory pragma нужно избежать. |