سلام خدمت اساتید محترم.
می خواستم یه برنامه کوچولو برای تست کردن اتصال به sqlite در اندروید بنویسم ولی در هنگام ران کردن برنامه هیچ ارتباطی با پایگاه داده برقرار نمیکنه و جوابی هم نمیده.
و در قسمت کنسول کیوت یه خطایی مبنی بر اینکه پایگاه داده open نشده دیده میشه.
تو سایتای خارجی چیزی پیدا نکردم غیر اینکه هر چی هست به پوشه assests ربط داره.
کد من اینه یه نگاهی بندازید ببینید مشکل چیه؟؟
#include "csqlcoect.h"
#include <QFile>
#include <QSqlQuery>
#include <QMessageBox>
#include <QDebug>
#include <QSql>
#include <QSqlError>
#include <QSqlTableModel>
#include <QSqlRecord>CSqlCoect::CSqlCoect()
{
db = QSqlDatabase::addDatabase( "QSQLITE","MyCoection" );
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::waing(0, "Failed to coect!", "Error coecting 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 CSqlCoect::getValue()
{
retu result;
}CSqlCoect::~CSqlCoect()
{
db.close();
}
برچسب:
نویسنده: محمد رضا جوادیان