Mercurial > dedupe
annotate TestSQLGenerator.cpp @ 78:9744ec195be3
Encapsulate EditDistance with caching.
| author | Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no> |
|---|---|
| date | Thu, 10 Oct 2013 01:07:52 +0200 |
| parents | 8136057988bc |
| children |
| rev | line source |
|---|---|
|
76
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
1 #include "SQLGenerator.hpp" |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
2 #include "TestFramework.hpp" |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
3 #include "TestDataBase.hpp" |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
4 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
5 #include "Exception/SQLException.hpp" |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
6 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
7 BOOST_AUTO_TEST_CASE( CreateInsertAndRetrieveQString ) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
8 { |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
9 TestDatabase tdb; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
10 QSqlDatabase db = tdb.getDatabase(); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
11 QSqlQuery query(db); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
12 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
13 QString tableName = "test"; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
14 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
15 QString fieldCreateString1 = SQLGenerator<QString>::createFields("value1"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
16 QString fieldCreateString2 = SQLGenerator<QString>::createFields("value2"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
17 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
18 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
19 QString createQuery = QString("CREATE TABLE %1(%2, %3);") |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
20 .arg(tableName) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
21 .arg(fieldCreateString1) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
22 .arg(fieldCreateString2); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
23 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
24 BOOST_REQUIRE(query.exec(createQuery)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
25 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
26 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
27 QString queryString = QString("INSERT into %1 (%2, %3) VALUES(%4, %5);") |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
28 .arg(tableName) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
29 .arg(SQLGenerator<QString>::fieldName("value1")) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
30 .arg(SQLGenerator<QString>::fieldName("value2")) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
31 .arg(SQLGenerator<QString>::valueString("value1")) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
32 .arg(SQLGenerator<QString>::valueString("value2")); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
33 QSqlQuery insertQuery = QSqlQuery(db); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
34 BOOST_REQUIRE(insertQuery.prepare(queryString)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
35 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
36 QList<QString> valueList1, valueList2; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
37 for (int i = 1; i <= 3; ++i) { |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
38 valueList1 << QString("a%1").arg(i); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
39 valueList2 << QString("b%1").arg(i); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
40 } |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
41 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
42 SQLGenerator<QString>::bindValues(insertQuery, valueList1, "value1"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
43 SQLGenerator<QString>::bindValues(insertQuery, valueList2, "value2"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
44 BOOST_REQUIRE(insertQuery.execBatch()); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
45 insertQuery.finish(); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
46 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
47 QString fieldValueString1 = SQLGenerator<QString>::fieldName("value1"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
48 QString fieldValueString2 = SQLGenerator<QString>::fieldName("value2"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
49 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
50 QString selectQuery = QString("SELECT %1, %2 FROM %3;") |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
51 .arg(fieldValueString1).arg(fieldValueString2).arg(tableName); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
52 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
53 BOOST_REQUIRE(query.exec(selectQuery)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
54 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
55 while (query.next()) { |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
56 QString value1 = *SQLGenerator<QString>::extract(query, "value1"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
57 QString value2 = *SQLGenerator<QString>::extract(query, "value2"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
58 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
59 BOOST_REQUIRE(valueList1.contains(value1)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
60 BOOST_REQUIRE(valueList2.contains(value2)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
61 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
62 valueList1.removeAt(valueList1.indexOf(value1)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
63 valueList2.removeAt(valueList2.indexOf(value2)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
64 } |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
65 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
66 boost::optional<QString> empty1 = |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
67 SQLGenerator<QString>::extract(query, "value1"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
68 boost::optional<QString> empty2 = |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
69 SQLGenerator<QString>::extract(query, "value2"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
70 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
71 BOOST_REQUIRE(!empty1); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
72 BOOST_REQUIRE(!empty2); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
73 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
74 BOOST_REQUIRE(valueList1.empty()); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
75 BOOST_REQUIRE(valueList2.empty()); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
76 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
77 query.finish(); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
78 } |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
79 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
80 BOOST_AUTO_TEST_CASE( CreateInsertAndRetrieveUniqueString ) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
81 { |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
82 TestDatabase tdb; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
83 QSqlDatabase db = tdb.getDatabase(); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
84 QSqlQuery query(db); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
85 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
86 QString tableName = "test"; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
87 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
88 QString fieldCreateString1 = |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
89 SQLGenerator<UniqueString>::createFields("value1"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
90 QString fieldCreateString2 = |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
91 SQLGenerator<UniqueString>::createFields("value2"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
92 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
93 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
94 QString createQuery = QString("CREATE TABLE %1(%2, %3);") |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
95 .arg(tableName) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
96 .arg(fieldCreateString1) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
97 .arg(fieldCreateString2); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
98 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
99 BOOST_REQUIRE(query.exec(createQuery)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
100 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
101 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
102 QString queryString = QString("INSERT into %1 (%2, %3) VALUES(%4, %5);") |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
103 .arg(tableName) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
104 .arg(SQLGenerator<UniqueString>::fieldName("value1")) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
105 .arg(SQLGenerator<UniqueString>::fieldName("value2")) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
106 .arg(SQLGenerator<UniqueString>::valueString("value1")) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
107 .arg(SQLGenerator<UniqueString>::valueString("value2")); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
108 QSqlQuery insertQuery = QSqlQuery(db); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
109 BOOST_REQUIRE(insertQuery.prepare(queryString)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
110 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
111 QList<UniqueString> valueList1, valueList2; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
112 for (int i = 1; i <= 3; ++i) { |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
113 valueList1 << QString("a%1").arg(i); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
114 valueList2 << QString("b%1").arg(i); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
115 } |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
116 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
117 SQLGenerator<UniqueString>::bindValues(insertQuery, valueList1, "value1"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
118 SQLGenerator<UniqueString>::bindValues(insertQuery, valueList2, "value2"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
119 BOOST_REQUIRE(insertQuery.execBatch()); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
120 insertQuery.finish(); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
121 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
122 QString fieldValueString1 = SQLGenerator<UniqueString>::fieldName("value1"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
123 QString fieldValueString2 = SQLGenerator<UniqueString>::fieldName("value2"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
124 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
125 QString selectQuery = QString("SELECT %1, %2 FROM %3;") |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
126 .arg(fieldValueString1).arg(fieldValueString2).arg(tableName); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
127 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
128 BOOST_REQUIRE(query.exec(selectQuery)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
129 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
130 while (query.next()) { |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
131 UniqueString value1 = *SQLGenerator<UniqueString>::extract(query, "value1"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
132 UniqueString value2 = *SQLGenerator<UniqueString>::extract(query, "value2"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
133 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
134 BOOST_REQUIRE(valueList1.contains(value1)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
135 BOOST_REQUIRE(valueList2.contains(value2)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
136 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
137 valueList1.removeAt(valueList1.indexOf(value1)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
138 valueList2.removeAt(valueList2.indexOf(value2)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
139 } |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
140 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
141 boost::optional<UniqueString> empty1 = |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
142 SQLGenerator<UniqueString>::extract(query, "value1"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
143 boost::optional<UniqueString> empty2 = |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
144 SQLGenerator<UniqueString>::extract(query, "value2"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
145 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
146 BOOST_REQUIRE(!empty1); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
147 BOOST_REQUIRE(!empty2); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
148 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
149 BOOST_REQUIRE(valueList1.empty()); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
150 BOOST_REQUIRE(valueList2.empty()); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
151 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
152 query.finish(); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
153 } |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
154 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
155 BOOST_AUTO_TEST_CASE( CreateInsertAndRetrieveInt ) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
156 { |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
157 TestDatabase tdb; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
158 QSqlDatabase db = tdb.getDatabase(); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
159 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
160 QSqlQuery query(db); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
161 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
162 QString tableName = "test"; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
163 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
164 QString fieldCreateString1 = SQLGenerator<int>::createFields("value1"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
165 QString fieldCreateString2 = SQLGenerator<int>::createFields("value2"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
166 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
167 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
168 QString createQuery = QString("CREATE TABLE %1(%2, %3);") |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
169 .arg(tableName) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
170 .arg(fieldCreateString1) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
171 .arg(fieldCreateString2); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
172 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
173 BOOST_REQUIRE(query.exec(createQuery)); |
|
78
9744ec195be3
Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
76
diff
changeset
|
174 |
|
76
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
175 QString queryString = QString("INSERT into %1 (%2, %3) VALUES(%4, %5);") |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
176 .arg(tableName) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
177 .arg(SQLGenerator<int>::fieldName("value1")) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
178 .arg(SQLGenerator<int>::fieldName("value2")) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
179 .arg(SQLGenerator<int>::valueString("value1")) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
180 .arg(SQLGenerator<int>::valueString("value2")); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
181 QSqlQuery insertQuery = QSqlQuery(db); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
182 BOOST_REQUIRE(insertQuery.prepare(queryString)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
183 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
184 QList<int> valueList1, valueList2; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
185 int p1 = 2; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
186 int p2 = 3; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
187 int v1 = p1; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
188 int v2 = p2; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
189 for (int i = 1; i <= 3; ++i) { |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
190 valueList1 << v1; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
191 valueList2 << v2; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
192 v1 *= p1; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
193 v2 *= p2; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
194 } |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
195 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
196 SQLGenerator<int>::bindValues(insertQuery, valueList1, "value1"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
197 SQLGenerator<int>::bindValues(insertQuery, valueList2, "value2"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
198 BOOST_REQUIRE(insertQuery.execBatch()); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
199 insertQuery.finish(); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
200 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
201 QString fieldValueString1 = SQLGenerator<int>::fieldName("value1"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
202 QString fieldValueString2 = SQLGenerator<int>::fieldName("value2"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
203 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
204 QString selectQuery = QString("SELECT %1, %2 FROM %3;") |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
205 .arg(fieldValueString1).arg(fieldValueString2).arg(tableName); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
206 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
207 BOOST_REQUIRE(query.exec(selectQuery)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
208 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
209 while (query.next()) { |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
210 int value1 = *SQLGenerator<int>::extract(query, "value1"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
211 int value2 = *SQLGenerator<int>::extract(query, "value2"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
212 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
213 BOOST_REQUIRE(valueList1.contains(value1)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
214 BOOST_REQUIRE(valueList2.contains(value2)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
215 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
216 valueList1.removeAt(valueList1.indexOf(value1)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
217 valueList2.removeAt(valueList2.indexOf(value2)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
218 } |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
219 boost::optional<int> empty1 = SQLGenerator<int>::extract(query, "value1"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
220 boost::optional<int> empty2 = SQLGenerator<int>::extract(query, "value2"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
221 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
222 BOOST_REQUIRE(!empty1); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
223 BOOST_REQUIRE(!empty2); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
224 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
225 BOOST_REQUIRE(valueList1.empty()); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
226 BOOST_REQUIRE(valueList2.empty()); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
227 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
228 } |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
229 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
230 BOOST_AUTO_TEST_CASE( CreateInsertAndRetrieveOrderedPair ) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
231 { |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
232 TestDatabase tdb; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
233 QSqlDatabase db = tdb.getDatabase(); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
234 QSqlQuery query(db); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
235 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
236 QString tableName = "test"; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
237 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
238 QString fieldCreateString1 = |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
239 SQLGenerator<OrderedPair<int> >::createFields("value1"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
240 QString fieldCreateString2 = |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
241 SQLGenerator<OrderedPair<int> >::createFields("value2"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
242 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
243 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
244 QString createQuery = QString("CREATE TABLE %1(%2, %3);") |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
245 .arg(tableName) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
246 .arg(fieldCreateString1) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
247 .arg(fieldCreateString2); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
248 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
249 BOOST_REQUIRE(query.exec(createQuery)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
250 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
251 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
252 QString queryString = QString("INSERT into %1 (%2, %3) VALUES(%4, %5);") |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
253 .arg(tableName) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
254 .arg(SQLGenerator<OrderedPair<int> >::fieldName("value1")) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
255 .arg(SQLGenerator<OrderedPair<int> >::fieldName("value2")) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
256 .arg(SQLGenerator<OrderedPair<int> >::valueString("value1")) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
257 .arg(SQLGenerator<OrderedPair<int> >::valueString("value2")); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
258 QSqlQuery insertQuery = QSqlQuery(db); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
259 BOOST_REQUIRE(insertQuery.prepare(queryString)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
260 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
261 QList<OrderedPair<int> > valueList1, valueList2; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
262 int p [] = { 2, 3, 5, 7}; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
263 int v [] = { 2, 3, 5, 7}; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
264 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
265 for (int i = 1; i <= 3; ++i) { |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
266 valueList1 << OrderedPair<int>(v[0], v[1]); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
267 valueList2 << OrderedPair<int>(v[2], v[3]); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
268 for (int i = 0; i < 4; ++i) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
269 v[i] *= p[i]; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
270 } |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
271 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
272 SQLGenerator<OrderedPair<int> >::bindValues(insertQuery, valueList1, "value1"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
273 SQLGenerator<OrderedPair<int> >::bindValues(insertQuery, valueList2, "value2"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
274 BOOST_REQUIRE(insertQuery.execBatch()); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
275 insertQuery.finish(); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
276 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
277 QString fieldValueString1 = |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
278 SQLGenerator<OrderedPair<int> >::fieldName("value1"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
279 QString fieldValueString2 = |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
280 SQLGenerator<OrderedPair<int> >::fieldName("value2"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
281 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
282 QString selectQuery = QString("SELECT %1, %2 FROM %3;") |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
283 .arg(fieldValueString1).arg(fieldValueString2).arg(tableName); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
284 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
285 BOOST_REQUIRE(query.exec(selectQuery)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
286 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
287 while (query.next()) { |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
288 OrderedPair<int> value1 = |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
289 *SQLGenerator<OrderedPair<int> >::extract(query, "value1"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
290 OrderedPair<int> value2 = |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
291 *SQLGenerator<OrderedPair<int> >::extract(query, "value2"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
292 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
293 BOOST_REQUIRE(valueList1.contains(value1)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
294 BOOST_REQUIRE(valueList2.contains(value2)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
295 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
296 valueList1.removeAt(valueList1.indexOf(value1)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
297 valueList2.removeAt(valueList2.indexOf(value2)); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
298 } |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
299 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
300 boost::optional<OrderedPair<int> > empty1 = |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
301 SQLGenerator<OrderedPair<int> >::extract(query, "value1"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
302 boost::optional<OrderedPair<int> > empty2 = |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
303 SQLGenerator<OrderedPair<int> >::extract(query, "value2"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
304 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
305 BOOST_REQUIRE(!empty1); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
306 BOOST_REQUIRE(!empty2); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
307 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
308 BOOST_REQUIRE(valueList1.empty()); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
309 BOOST_REQUIRE(valueList2.empty()); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
310 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
311 query.finish(); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
312 } |
