-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmydatabase.cpp
104 lines (86 loc) · 2.98 KB
/
mydatabase.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include "mydatabase.h"
MyDatabase::MyDatabase()
{
}
bool MyDatabase::m_OpenDB()
{
if(icounter >= 4294967295)
icounter = 0;
QString strCounter = QString::number(icounter++);
dba = QSqlDatabase::addDatabase("QSQLITE" , "CONN"+QString::number(QDateTime::currentMSecsSinceEpoch())+strCounter);
dba.setDatabaseName(QDir::currentPath()+QDir::separator()+"employee_info.db");
if(!dba.open())
{
strSqliteError = "Failed to open "+dba.databaseName();
qDebug() << __FUNCTION__<< "Can't Connect to DB !";
return false;
}
else
qDebug() << __FUNCTION__ << "Connected Successfully to DB !";
return true;
}
void MyDatabase::setMap(QVariantMap map)
{
if(mMap != map) {
mMap = map;
emit mapChanged();
}
qDebug ()<< mMap;
}
bool MyDatabase::m_CreateTable( QString TableName)
{
strSqliteError.clear();
if(m_OpenDB())
{
QSqlQuery qry_Creation(QSqlDatabase::database(dba.connectionName()));
QString str_Columns;
for (QVariantMap::iterator cMap = mMap.begin(); cMap != mMap.end(); ++cMap)
{
str_Columns += cMap.key() + " ";
str_Columns += cMap.value().toString() + ", ";
}
str_Columns.remove(str_Columns.size()-2,1);
QString str_CreationQry = "Create Table if not exists " + TableName + " ( " + str_Columns + " );";
qry_Creation.prepare(str_CreationQry);
if (! qry_Creation.exec())
{
strSqliteError = qry_Creation.lastError().text() +"; Query = "+qry_Creation.lastQuery();
dba.close();
return false;
}
qry_Creation.finish();
qDebug() << __FUNCTION__ << "Table Creation of " << TableName << " executed successfully";
dba.close();
return true;
}
return false;
}
bool MyDatabase::m_InsertTable(QString TableName)
{
strSqliteError.clear();
if(m_OpenDB())
{
QSqlQuery qry_Insertion(QSqlDatabase::database(dba.connectionName()));
QString str_ColumnsName;
QString str_ColumnsData;
for (QVariantMap::iterator cMap = mMap.begin(); cMap != mMap.end(); ++cMap)
{
str_ColumnsName = str_ColumnsName + " " + cMap.key() + ", ";
str_ColumnsData = str_ColumnsData + "\"" + cMap.value().toString() + "\"" + ",";
}
str_ColumnsName.remove(str_ColumnsName.lastIndexOf(","),1);
str_ColumnsData.remove(str_ColumnsData.lastIndexOf(","),1);
QString str_InsertQry = "Insert into " + TableName + " (" + str_ColumnsName + " )" + " VALUES (" + str_ColumnsData + " );";
qry_Insertion.prepare(str_InsertQry);
if (! qry_Insertion.exec())
{
strSqliteError = qry_Insertion.lastError().text() +"; Query = "+qry_Insertion.lastQuery();
dba.close();
return false;
}
qDebug() << __FUNCTION__ << "Insertion qry executed successfully ";
dba.close();
return true;
}
return false;
}