问如何连接到安卓操作系统中现有的SQLlite文件
Qt how connect to an existing SQLlite file in android OS?
我正在尝试连接到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);
}
现在,您可以如上所述连接到您的数据库。
相关文章:
- 在C++中设置基于操作系统的文件路径
- 如何链接我自己的 .so 文件而不是操作系统捆绑包 .so 文件?
- 程序'main.exe'运行失败:指定的可执行文件不是此操作系统平台的有效应用程序
- 窗口中的文件损坏 电源故障后操作系统
- 如何在Linux / Windows操作系统上使用文件*.cpp一步编译下面的代码
- 如何在 Windows 操作系统中创建制作文件并使用 cmd 运行它
- 让可执行文件在多个 Linux 操作系统上运行:
- C/C++文件输出缓冲/缓冲区切换到操作系统
- 文件移动 - 操作系统如何知道是更新主文件表还是复制和删除
- 如何在 Windows 8 64 位操作系统中注册.DLL文件
- 如何在C++中在多个操作系统上播放声音文件
- 如何在不被操作系统冻结或杀死进程的情况下向文件写入大量数据
- 跨所有操作系统应用文件状态(Stat的结构类型)
- Windows 7 x64操作系统下如何确定应用程序文件路径
- .exe文件在windows 7操作系统下的路径
- 在检查c++头文件上的操作系统时出错
- 内存映射一个巨大的文件在32位软件运行在64位操作系统
- 为什么操作系统分配的内存比小型可执行文件所需的要多
- Qt平台上的操作系统级别文件I/O锁
- 无法在 Ubuntu 64 位操作系统中读取大于 2GB 的文件