# HG changeset patch # User John Kern # Date 1283536069 25200 # Node ID 105a16347b5ac2f5b1e9bfa9ff7a892f7b478c55 # Parent b9716e8867f1d46fcb7ba98c19463ebac1ae7386 reverting to previous version diff -r b9716e8867f1 -r 105a16347b5a contactengine/dbtools.cpp --- a/contactengine/dbtools.cpp Fri Sep 03 10:38:13 2010 -0700 +++ b/contactengine/dbtools.cpp Fri Sep 03 10:47:49 2010 -0700 @@ -1,12 +1,108 @@ #include +#include #include -#include -#include - #include "database.h" #include "dbtools.h" +bool DBTools::createTable(QString sqlStmt) +{ + qDebug() << "DB: create table statement: " << sqlStmt << endl; + + QSqlQuery query; + return query.exec(sqlStmt); +} + +int DBTools::getLastInsertRowId() +{ + int rc = -1; + QSqlQuery query; + query.exec("select last_insert_rowid()"); + if (!query.exec()) { + QString errCode = "last rowid query Failed: " + query.lastError().text(); + qWarning(errCode.toStdString().c_str()); + + } else { + query.next(); + rc = query.value(0).toInt(); + } + return rc; +} + +void DBTools::insertContact( QString name, QString mobile, QString deskphone, + int xtn, QString email, QString skype, + QString twitter, QString title, int site, + int department, int floor) +{ + QSqlQuery query; + + query.prepare("INSERT INTO contacts ( name, mobile, deskphone, xtn, " + "email, skype, twitter, title, site, department, floor) " + "VALUES (:name,:mobile,:deskphone,:xtn,:email,:skype, " + ":twitter, :title, :site, :department, :floor)"); + + query.bindValue(":name", name); + query.bindValue(":mobile", mobile); + query.bindValue(":deskphone", deskphone); + query.bindValue(":xtn", xtn); + query.bindValue(":twitter", twitter); + query.bindValue(":skype", skype); + query.bindValue(":email", email); + query.bindValue(":title", title); + query.bindValue(":site", site); + query.bindValue(":department", department); + query.bindValue(":floor", floor); + + if (!query.exec()) + { + qDebug() << query.lastError(); + qFatal("Failed to add fish."); + } +} + + +bool DBTools::createDB() +{ + QSqlDatabase db; + + // Find QSLite driver + db = QSqlDatabase::addDatabase("QSQLITE"); + + db.setDatabaseName("C:\\contactengine.db"); + + // Open databasee + if(!db.open()) + { + qDebug() << "DB: failed to open" << endl; + exit (1); + } + + qDebug() << "DB: database opened " << endl; + + bool rc = createTable("create table contacts " + "(cid integer primary key, " + "name varchar(128)," + "mobile varchar(128)," + "deskphone varchar(128)," + "xtn int," + "email varchar(128)," + "skype varchar(128)," + "twitter varchar(128)," + "title varchar(128)," + "site int," + "department int," + "floor int)"); + + qDebug() << "DB: create table rc=" << rc << endl; + return rc; +} + +void DBTools::testDB() +{ + createDB(); + insertContact("Tom", "12345", "45678", 22, "tom@symbian.org", "thetom", "tomtom", + "Senior Tom", SITE_LONDON, DEPT_TDM, 0); +} void DBTools::importCSV(QString fileName) { @@ -77,6 +173,7 @@ DBTools::DBTools(QObject *parent) { QObject(); + createDB(); } DBTools::~DBTools()