![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Эти интерфейсы обеспечиваются для использования внедрениями
прокладки VFS и не полезны за
пределами этого контекста. sqlite3_create_filename(D,J,W,N,P) ассигнует память, чтобы держать версию
имени файла базы данных D с соответствующим файлом J журнала и файлом W WAL
и с парами ключа/значений N параметров URI в массиве P.
Результат sqlite3_create_filename(D,J,W,N,P) это указатель на имя файла базы
данных, которое безопасно передать таким функциям, как:
Параметр P в sqlite3_create_filename(D,J,W,N,P)
должен быть множеством 2*N указателей на последовательности.
Каждая пара указателей в этом множестве соответствует ключу и значению для
параметра запроса. Параметр P может быть NULL, если N = 0.
Ни один из 2*N указателей во множестве P не может быть NULL,
ключевые указатели не должны быть пустыми строками. Ни один из параметров
D, J или W в sqlite3_create_filename(D,J,W,N,P) не может быть NULL,
хотя они могут быть пустыми строками. sqlite3_free_filename(Y) освобождает выделение памяти, ранее полученное из
sqlite3_create_filename().
sqlite3_free_filename(Y), где Y = NULL ничего не делает. Если Y для sqlite3_free_filename(Y) является чем-нибудь кроме NULL
или указателя, ранее полученного из sqlite3_create_filename(),
то плохие вещи, такие как повреждение кучи или segfaults могут произойти.
Значение Y не должна использоваться снова, после вызова
sqlite3_free_filename(Y). Это означает что, если метод
sqlite3_vfs.xOpen() VFS
вызвали, используя Y, то соответствующий метод
[sqlite3_module.xClose() должен также быть вызван до запроса
sqlite3_free_filename(Y).
Choose any three.
SQLite C Interface
Создайте и разрушьте имена файлов VFS
sqlite3_filename sqlite3_create_filename(const char *zDatabase,
const char *zJournal,
const char *zWal, int nParam,
const char **azParam);
void sqlite3_free_filename(sqlite3_filename);
Если ошибка распределения памяти происходит, sqlite3_create_filename()
мог бы возвратить NULL. Память, полученная из sqlite3_create_filename(X),
должна быть освобождена соответствующим запросом sqlite3_free_filename(Y).