Qt как подключиться к существующему файлу SQLlite в ОС Android?

Я пытаюсь подключиться к существующему файлу базы данных 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); } 

Теперь вы можете подключиться к своей базе данных, как указано выше.

Intereting Posts