适用于Android App的嵌入式SQLite数据库(Qt)

时间:2016-08-05 07:54:47

标签: android database qt sqlite qt5

我遇到了以下问题: 我正在开发一个跨平台应用程序(Linux / Android),并且我坚持将我的SQLite数据库部署到Android - 它非常适合Linux。 我设法通过我的.pro文件中的以下代码将我的db文件添加到资源

    $anu = DB::table('subscribes')->select('email')->get();
    $emails=[];
    foreach($anu as $a){
         $emails[]=$a->email;
    }
    Mail::send('emails.news', $emails, function ($message) use ($request, $emails) {
    $message->from('stevanajja@gmail.com',$request->email);     
    $message->to($emails)->subject($request->posisi);;
    });

现在在我处理数据库连接的DbManager C ++文件中,我无法运行SQLite数据库:(

deployment.files += rako.db

deployment.path = /assets

INSTALLS += deployment

我错过了什么吗?

谢谢你们,

最高

3 个答案:

答案 0 :(得分:0)

  

我错过了什么吗?

实际上,是的。 假设您的assets文件夹位于android文件夹下,您应该在pro文件的下一行添加:

ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android

android文件夹的所有内容都将复制到apk

接下来就是Android上的assests是只读文件夹。因此,在使用数据库之前,您应该将其从assets复制到另一个位置。

答案 1 :(得分:0)

QFile dfile("assets:/db/database-last.db3");
if (dfile.exists())
{
    dfile.copy("./database-last.db3");
    QFile::setPermissions("./database-last.db3",QFile::WriteOwner |     QFile::ReadOwner);
 }

...

 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
 db.setDatabaseName("./database-last.db3");
 db.open();

...

<。>文件中的

 deployment.files += database-last.db3
 deployment.path = /assets/db
 INSTALLS += deployment

它适用于Android,但如何在iOS和Winphone上执行相同操作?

答案 2 :(得分:0)

在dbmanager cpp文件中

VALUE

.pro文件

VALUE