X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fvicar-lib%2Fcpp%2Fdatabaseutility.cpp;fp=src%2Fvicar-lib%2Fcpp%2Fdatabaseutility.cpp;h=e2df72b9c67b50316a44432d6b9695356b66f9ac;hb=38440679f13b8dc528a9aff93cbf4935011fdb22;hp=0000000000000000000000000000000000000000;hpb=89f0017e6a73945ea83247472a6fa07d6ee536b5;p=vicar diff --git a/src/vicar-lib/cpp/databaseutility.cpp b/src/vicar-lib/cpp/databaseutility.cpp new file mode 100644 index 0000000..e2df72b --- /dev/null +++ b/src/vicar-lib/cpp/databaseutility.cpp @@ -0,0 +1,203 @@ +#include "databaseutility.h" +#include +#include +#include +#include +#include +#include +#include + +DatabaseUtility::DatabaseUtility(QObject *parent) : + QObject(parent) +{ +} + +DatabaseUtility::~DatabaseUtility(){ +} + +bool DatabaseUtility::openDatabase(){ + profilesDB = QSqlDatabase::addDatabase("QSQLITE"); + //QString path(QDir::home().path()); + //path.append(QDir::separator()).append("vicar.db.sqlite"); + QString path("/home/user/vicar.db.sqlite"); + path = QDir::toNativeSeparators(path); + qDebug()<< "Opening database at "<"<profileID = query.value(0).toInt(); + profile->phoneNumberPattern = query.value(1).toString(); + profile->gatewayNumber = query.value(2).toString(); + profile->dtmfFormat = query.value(3).toString(); + profile->dtmfPrefix = query.value(4).toString(); + profile->dtmfSuffix = query.value(5).toString(); + result = true; + } + } + return result; +} + +bool DatabaseUtility::getAllProfiles(org::maemo::vicar::ProfileList* profileList){ + bool result = false; + if (profilesDB.isOpen()){ + QString strQuery = QString("select * from profiles order by id"); + qDebug() << "SQL>"<append(profile); + } + result = true; + } + return result; +} + +bool DatabaseUtility::findProfileByNumber(QString number,org::maemo::vicar::Profile* profile){ + bool result = false; + if (profilesDB.isOpen()){ + QString strQuery = QString("select * from profiles where '%1' like numberpattern||'%' order by length(numberpattern) desc") + .arg(number); + qDebug() << "SQL>"<profileID = query.value(0).toInt(); + profile->phoneNumberPattern = query.value(1).toString(); + profile->gatewayNumber = query.value(2).toString(); + profile->dtmfFormat = query.value(3).toString(); + profile->dtmfPrefix = query.value(4).toString(); + profile->dtmfSuffix = query.value(5).toString(); + } + result = true; + } + return result; +} + +bool DatabaseUtility::getDefaultProfile(org::maemo::vicar::Profile *profile){ + bool result = false; + if (profilesDB.isOpen()){ + QString strQuery = QString("select * from profiles where numberpattern = '%' order by id"); + qDebug() << "SQL>"<profileID = query.value(0).toInt(); + profile->phoneNumberPattern = query.value(1).toString(); + profile->gatewayNumber = query.value(2).toString(); + profile->dtmfFormat = query.value(3).toString(); + profile->dtmfPrefix = query.value(4).toString(); + profile->dtmfSuffix = query.value(5).toString(); + result = true; + } + } + return result; +} + +int DatabaseUtility::insertProfile(org::maemo::vicar::Profile profile){ + int newId = -1; + bool result = false; + if (profilesDB.isOpen()){ + bool continueInsert = true; + if (!this->tableExists("profiles")){ + continueInsert = this->createProfilesTable(); + } + + if (continueInsert) + { + QSqlQuery query; + QString strQuery = QString("insert into profiles values(NULL,'%1','%2','%3','%4','%5')") + .arg(profile.phoneNumberPattern).arg(profile.gatewayNumber) + .arg(profile.dtmfFormat).arg(profile.dtmfPrefix).arg(profile.dtmfSuffix); + qDebug() << "SQL>"<"<"<