Добрый день!
Возможно ли установить пароль на базу данных SQLite средствами Qt?Я раньше не работал с базами данных SQLite, поэтому задал такой вопрос.
Метод QSqlDriver::open() который принимает имя базы данных, пароль и т. д. в классе QSQLiteDriver реализован таким образом, что строка пароля никуда не передается, т. е. используется только имя базы данных (которое в смысле SQLITE является путем к файлу базы данных), а остальные параметры просто игнорируются.
Проанализировав плагин QSQLiteDriver было выяснено, что этот класс имеет конструктор, который принимает указатель на нативное соединение sqlite3*. То есть можно самому создать подключение к базе данных, а потом на его основе создать объект драйвера базы данных, который можно будет использовать в дальнейшей работе.
Так вот,
каким образом создать это нативное соединение и задать ему пароль?В файле sqlite3.h были найдены следующие функции:
SQLITE_API int sqlite3_key(
sqlite3 *db, /* Database to be rekeyed */
const void *pKey, int nKey /* The key */
);
SQLITE_API int sqlite3_rekey(
sqlite3 *db, /* Database to be rekeyed */
const void *pKey, int nKey /* The new key */
);
Они предназначены для работы с паролем.
Но их описание отсутствует в официальной документации на SQLite, а в заголовочном файле написано, что
The code to implement this API is not available in the public release of SQLite.Какие вообще бывают релизы SQLite? И какой релиз использует Qt?