reverting to previous version
authorJohn Kern <johnk@symbian.org>
Fri, 03 Sep 2010 10:47:49 -0700
changeset 43 105a16347b5a
parent 42 b9716e8867f1
child 44 ca3ea89c80a3
reverting to previous version
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 <QtCore/QCoreApplication>
+#include <QtSql>
 #include <QFile>
 
-#include <QDebug>
-#include <QStringList>
-
 #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()