问如何连接到安卓操作系统中现有的SQLlite文件



我正在尝试连接到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);
}

现在,您可以如上所述连接到您的数据库。

最新更新