Я пытаюсь подключиться к существующему файлу базы данных SQLlite в моем проекте qt 5.2 (в ОС Android). Где я должен сохранить этот файл, чтобы загрузить его с помощью этого кода: QSqlDatabase::addDatabase("myfile.sqlite");
?
Сначала вы должны добавить соединение с базой данных с помощью addDatabase с типом драйвера QSQLITE и именем соединения, например MyConnection.
QSqlDatabase db = QSqlDatabase::addDatabase( "QSQLITE","MyConnection" );
Затем вы должны установить имя базы данных соединения и открыть его.
db.setDatabaseName( "myfile.sqlite" ); if( !db.open() ) { QMessageBox::warning(this, tr("Failed to connect!"), tr("Error connecting to database: ")+db.lastError().driverText() ); }
В папке разработки вы найдете \ android \ assets – просто поместите файл базы данных SQLite в эту папку и добавьте их в свой .pro:
deployment.files += myfile.sqlite deployment.path = /assets INSTALLS += deployment
Но файлы в активах только для чтения. Поэтому сначала скопируйте его в другое место:
QFile dfile("assets:/myfile.sqlite"); if (dfile.exists()) { dfile.copy("./myfile.sqlite"); QFile::setPermissions("./myfile.sqlite",QFile::WriteOwner | QFile::ReadOwner); }
Теперь вы можете подключиться к своей базе данных, как указано выше.