PDA

View Full Version : مشکل در اتصال به sqite توسط qt اندروید



pcse7en
یک شنبه 05 اردیبهشت 1395, 18:50 عصر
سلام خدمت اساتید محترم.
می خواستم یه برنامه کوچولو برای تست کردن اتصال به sqlite در اندروید بنویسم ولی در هنگام ران کردن برنامه هیچ ارتباطی با پایگاه داده برقرار نمیکنه و جوابی هم نمیده.
و در قسمت کنسول کیوت یه خطایی مبنی بر اینکه پایگاه داده open نشده دیده میشه.
تو سایتای خارجی چیزی پیدا نکردم غیر اینکه هر چی هست به پوشه assests ربط داره.

کد من اینه یه نگاهی بندازید ببینید مشکل چیه؟؟

#include "csqlconnect.h"
#include <QFile>
#include <QSqlQuery>
#include <QMessageBox>
#include <QDebug>
#include <QSql>
#include <QSqlError>
#include <QSqlTableModel>
#include <QSqlRecord>

CSqlConnect::CSqlConnect()
{
db = QSqlDatabase::addDatabase( "QSQLITE","MyConnection" );
QFile dfile("./myfile.sqlite");
bool dbf=dfile.exists();
if (!dbf)
{
QFile::copy("assets:/myfile.sqlite", "./myfile.sqlite");
QFile::setPermissions("./myfile.sqlite",QFile::WriteOwner | QFile::ReadOwner);
}
db.setDatabaseName( "myfile.sqlite" );
bool open=db.open();
if(!open)
{
QMessageBox::warning(0, "Failed to connect!", "Error connecting to database: "+db.lastError().driverText());
// qDebug()<<"Failed!!!!";
}

if(open)
{
QSqlQuery query;
query.exec("create table person "
"(id integer primary key, "
"firstname varchar(20), "
"lastname varchar(30), "
"age integer)");
}

QSqlQuery query2;
query2.prepare("INSERT INTO person (id,firstname,lastname,age)VALUES(:ID,:FIRSTNAME,: LASTNAME,:AGE)");
query2.bindValue(":ID",1);
query2.bindValue(":FIRSTNAME","ali");
query2.bindValue(":LASTNAME","alavi");
query2.bindValue(":AGE",24);
query2.exec();
QSqlTableModel model;
model.setTable("person");
model.select();
QSqlRecord record=model.record(0);
result=record.value("firstname").toString();
}

QString CSqlConnect::getValue()
{
return result;
}

CSqlConnect::~CSqlConnect()
{
db.close();
}

حامد مصافی
چهارشنبه 08 اردیبهشت 1395, 14:02 عصر
فایل پایگاه داده باید در پوسه data کپی بشه. نه کنار فایل اجرایی

pcse7en
شنبه 11 اردیبهشت 1395, 19:09 عصر
این پوشه دیتا مسیر درستش کجاست من که هرپی گشتم چیزی به این نام توی گوشیم ندیدم؟؟:ناراحت::ناراحت:

راستی یه سوال دیگه باید توی فایل منیفست اجازه دسترسی به فایهای حافظه هم داده بشه؟؟؟