我正在尝试连接到qt 5.2项目中的现有SQLlite数据库文件(在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);
}
现在,您可以如上所述连接到您的数据库。