Редакция 218 | Только различия | Учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS
Редакция 218 | Редакция 220 | ||
---|---|---|---|
1 | #include "mysql.h"
|
1 | #include "mysql.h"
|
2 | 2 | ||
3 | MySql::MySql(QObject *parent) : |
3 | MySql::MySql(QObject *parent) : |
4 | QObject(parent) |
4 | QObject(parent) |
5 | {
|
5 | {
|
6 | }
|
6 | }
|
7 | 7 | ||
8 | MySql::~MySql(){ |
8 | MySql::~MySql(){ |
9 | db.close(); |
9 | db.close(); |
10 | }
|
10 | }
|
11 | 11 | ||
12 | /************************************************
|
12 | /************************************************
|
13 | ** Ôóíêöèÿ ïðèñâîåíèÿ çíà÷åíèÿ èìåíè áàçû äàííûõ
|
13 | ** Ôóíêöèÿ ïðèñâîåíèÿ çíà÷åíèÿ èìåíè áàçû äàííûõ
|
14 | **
|
14 | **
|
15 | ************************************************/
|
15 | ************************************************/
|
16 | 16 | ||
17 | 17 | ||
18 | 18 | ||
19 | void MySql::setDatabaseName(QString name){ |
19 | void MySql::setDatabaseName(QString name){ |
20 | MySql::sqlDatabaseName = name; |
20 | MySql::sqlDatabaseName = name; |
21 | }
|
21 | }
|
22 | 22 | ||
23 | 23 | ||
24 | bool MySql::connect(){ |
24 | bool MySql::connect(){ |
25 | db = QSqlDatabase::addDatabase("QMYSQL"); |
25 | db = QSqlDatabase::addDatabase("QMYSQL"); |
26 | 26 | ||
27 | db.setHostName(MySql::sqlHostName); |
27 | db.setHostName(MySql::sqlHostName); |
28 | db.setDatabaseName(MySql::sqlDatabaseName); |
28 | db.setDatabaseName(MySql::sqlDatabaseName); |
29 | db.setUserName(MySql::sqlUserName); |
29 | db.setUserName(MySql::sqlUserName); |
30 | db.setPassword(MySql::sqlPassword); |
30 | db.setPassword(MySql::sqlPassword); |
31 | bool ok = db.open(); |
31 | bool ok = db.open(); |
32 | if (ok) return true; |
32 | if (ok) return true; |
33 | else { |
33 | else { |
34 | MySql::mysqlLastError = db.lastError().text(); |
34 | MySql::mysqlLastError = db.lastError().text(); |
35 | return false; } |
35 | return false; } |
36 | 36 | ||
37 | /*
|
37 | /*
|
38 | pdb->setHostName(hostName);
|
38 | pdb->setHostName(hostName);
|
39 | pdb->setDatabaseName(baseName);
|
39 | pdb->setDatabaseName(baseName);
|
40 | pdb->setUserName(userName);
|
40 | pdb->setUserName(userName);
|
41 | pdb->setPassword(password);
|
41 | pdb->setPassword(password);
|
42 | bool ok = pdb->open();
|
42 | bool ok = pdb->open();
|
43 | 43 | ||
44 | if (!ok) {
|
44 | if (!ok) {
|
45 | QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
|
45 | QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
|
46 | QWidget(this->parent()), // Ðîäèòåëüñêèé âèäæåò.
|
46 | QWidget(this->parent()), // Ðîäèòåëüñêèé âèäæåò.
|
47 | QObject::tr("Database Error"), // Çàãîëîâîê.
|
47 | QObject::tr("Database Error"), // Çàãîëîâîê.
|
48 | db.lastError().text()); // Òåêñò ñîîáùåíèÿ.
|
48 | db.lastError().text()); // Òåêñò ñîîáùåíèÿ.
|
49 | }
|
49 | }
|
50 | */
|
50 | */
|
51 | 51 | ||
52 | return true; |
52 | return true; |
53 | }
|
53 | }
|
54 | 54 | ||
55 | 55 | ||
56 | void MySql::setUserName(QString uname){ |
56 | void MySql::setUserName(QString uname){ |
57 | MySql::sqlUserName = uname; |
57 | MySql::sqlUserName = uname; |
58 | }
|
58 | }
|
59 | 59 | ||
60 | void MySql::setPassword(QString passwrd){ |
60 | void MySql::setPassword(QString passwrd){ |
61 | MySql::sqlPassword = passwrd; |
61 | MySql::sqlPassword = passwrd; |
62 | }
|
62 | }
|
63 | 63 | ||
64 | 64 | ||
65 | void MySql::setHostName(QString hname){ |
65 | void MySql::setHostName(QString hname){ |
66 | MySql::sqlHostName = hname; |
66 | MySql::sqlHostName = hname; |
67 | }
|
67 | }
|
68 | 68 | ||
69 | bool MySql::createTable(SqlTable* table){ // ñîçäàåò â áàçå äàííûõ òàáëèöó |
69 | bool MySql::createTable(SqlTable* table){ // ñîçäàåò â áàçå äàííûõ òàáëèöó |
70 | QSqlQuery q;
|
70 | QSqlQuery q;
|
71 | bool ok; |
71 | bool ok; |
72 | ok = q.prepare(table->sqlString()); |
72 | ok = q.prepare(table->sqlString()); |
73 | if(!ok) { |
73 | if(!ok) { |
74 | MySql::mysqlLastError = q.lastError().text(); |
74 | MySql::mysqlLastError = q.lastError().text(); |
75 | return false;} |
75 | return false;} |
76 | ok = q.exec(); |
76 | ok = q.exec(); |
77 | if(!ok) { |
77 | if(!ok) { |
78 | MySql::mysqlLastError = q.lastError().text(); |
78 | MySql::mysqlLastError = q.lastError().text(); |
79 | return false;} |
79 | return false;} |
80 | else return true; |
80 | else return true; |
81 | }
|
81 | }
|
82 | 82 | ||
83 | 83 | ||
84 | 84 | ||
85 | QString MySql::lasError(){ |
85 | QString MySql::lasError(){ |
86 | 86 | ||
87 | return MySql::mysqlLastError; |
87 | return MySql::mysqlLastError; |
88 | }
|
88 | }
|
89 | 89 | ||
90 | 90 | ||
91 | 91 | ||
92 | /************************************************
|
92 | /************************************************
|
93 | ** Ôóíêöèÿ ñîçäàåò íåîáõîäèìûå òàáëèöû â áàçå äàííûõ
|
93 | ** Ôóíêöèÿ ñîçäàåò íåîáõîäèìûå òàáëèöû â áàçå äàííûõ
|
94 | ** äëÿ õðàíåíèÿ íàçâàíèÿ è îïèñàíèÿ êëàññîâ
|
94 | ** äëÿ õðàíåíèÿ íàçâàíèÿ è îïèñàíèÿ êëàññîâ
|
95 | ** (Òàáëèöà ListOfClasses è Òàáëèöà DescriptionOfClasses)
|
95 | ** (Òàáëèöà ListOfClasses è Òàáëèöà DescriptionOfClasses)
|
96 | ************************************************/
|
96 | ************************************************/
|
97 | 97 | ||
98 | 98 | ||
99 | bool MySql::createDataBase(){ |
99 | bool MySql::createDataBase(){ |
100 | SqlTable* tbl; |
100 | SqlTable* tbl; |
101 | TableField* fld; |
101 | TableField* fld; |
102 | if (!db.isOpen()){ |
102 | if (!db.isOpen()){ |
103 | MySql::mysqlLastError = tr("Database is not open!"); |
103 | MySql::mysqlLastError = tr("Database is not open!"); |
104 | return false; |
104 | return false; |
105 | }
|
105 | }
|
106 | 106 | ||
107 | tbl = new SqlTable(tr("ListOfModels")); // ñîçäàäèì òàáëèöó ñ èìåíåì ListOfModels äëÿ õðàíåíèÿ ñïèñêà ìîäåëåé ïðåäñòàâëåíèÿ |
107 | tbl = new SqlTable(tr("ListOfModels")); // ñîçäàäèì òàáëèöó ñ èìåíåì ListOfModels äëÿ õðàíåíèÿ ñïèñêà ìîäåëåé ïðåäñòàâëåíèÿ |
108 | fld = new TableField(tr("ModelName"), tbl); // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà ìîäåëåé, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ) |
108 | fld = new TableField(tr("ModelName"), tbl); // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà ìîäåëåé, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ) |
109 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
109 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
110 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
110 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
111 | fld->setDefaultValue(tr("New model")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
111 | fld->setDefaultValue(tr("New model")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
112 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
112 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
113 | 113 | ||
114 | 114 | ||
115 | fld = new TableField(tr("ModelString"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ìîäåëü â âèäå ñòðîêè |
115 | fld = new TableField(tr("ModelString"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ìîäåëü â âèäå ñòðîêè |
116 | fld->setType(tr("TEXT")); // òèï ïîëÿ - òåêñò |
116 | fld->setType(tr("TEXT")); // òèï ïîëÿ - òåêñò |
117 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
117 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
118 | tbl->append(fld); |
118 | tbl->append(fld); |
119 | 119 | ||
120 | fld = new TableField(tr("Enable"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ìîäåëü â âèäå ñòðîêè |
120 | fld = new TableField(tr("Enable"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ìîäåëü â âèäå ñòðîêè |
121 | fld->setType(tr("BOOL")); // òèï ïîëÿ - òåêñò |
121 | fld->setType(tr("BOOL")); // òèï ïîëÿ - òåêñò |
122 | fld->setDefaultValue(tr("1")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
122 | fld->setDefaultValue(tr("1")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
123 | tbl->append(fld); |
123 | tbl->append(fld); |
124 | 124 | ||
125 | 125 | ||
126 | if(!MySql::createTable(tbl)){ // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó |
126 | if(!MySql::createTable(tbl)){ // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó |
127 | 127 | ||
128 | // delete fld;
|
128 | // delete fld;
|
129 | delete tbl; // ÷èñòèì çà ñîáîé |
129 | delete tbl; // ÷èñòèì çà ñîáîé |
130 | return false; // âûâîäèì îøèáêó |
130 | return false; // âûâîäèì îøèáêó |
131 | }
|
131 | }
|
132 | 132 | ||
133 | 133 | ||
134 | else { // òàáëèöó óñïåøíî ñîçäàíà |
134 | else { // òàáëèöó óñïåøíî ñîçäàíà |
135 | // delete fld;
|
135 | // delete fld;
|
136 | delete tbl; // ÷èñòèì çà ñîáîé |
136 | delete tbl; // ÷èñòèì çà ñîáîé |
137 | return true; // ñîîáùàåì îá óñïåõå |
137 | return true; // ñîîáùàåì îá óñïåõå |
138 | 138 | ||
139 | }
|
139 | }
|
140 | 140 | ||
141 | 141 | ||
142 | 142 | ||
143 | 143 | ||
144 | 144 | ||
145 | tbl = new SqlTable(tr("ListOfClasses")); // ñîçäàäèì òàáëèöó ñ èìåíåì ListOfClasses äëÿ õðàíåíèÿ ñïèñêà êëàññîâ |
145 | tbl = new SqlTable(tr("ListOfClasses")); // ñîçäàäèì òàáëèöó ñ èìåíåì ListOfClasses äëÿ õðàíåíèÿ ñïèñêà êëàññîâ |
146 | fld = new TableField(tr("ClassName"), tbl); // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà êëàññîâ, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ) |
146 | fld = new TableField(tr("ClassName"), tbl); // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà êëàññîâ, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ) |
147 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
147 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
148 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
148 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
149 | fld->setDefaultValue(tr("New class")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
149 | fld->setDefaultValue(tr("New class")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
150 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
150 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
151 | 151 | ||
152 | fld = new TableField(tr("ClassAlias"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ |
152 | fld = new TableField(tr("ClassAlias"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ |
153 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
153 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
154 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
154 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
155 | fld->setDefaultValue(tr("New class alias")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
155 | fld->setDefaultValue(tr("New class alias")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
156 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
156 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
157 | 157 | ||
158 | fld = new TableField(tr("TableWhithInstance"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ |
158 | fld = new TableField(tr("TableWhithInstance"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ |
159 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
159 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
160 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
160 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
161 | fld->setDefaultValue(tr("New class instance")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
161 | fld->setDefaultValue(tr("New class instance")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
162 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
162 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
163 | 163 | ||
164 | fld = new TableField(tr("Comment"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ |
164 | fld = new TableField(tr("Comment"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ |
165 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
165 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
166 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
166 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
167 | fld->setDefaultValue(tr("without comments")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
167 | fld->setDefaultValue(tr("without comments")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
168 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
168 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
169 | 169 | ||
170 | 170 | ||
171 | if(!MySql::createTable(tbl)){ // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó |
171 | if(!MySql::createTable(tbl)){ // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó |
172 | 172 | ||
173 | // delete fld;
|
173 | // delete fld;
|
174 | delete tbl; // ÷èñòèì çà ñîáîé |
174 | delete tbl; // ÷èñòèì çà ñîáîé |
175 | return false; // âûâîäèì îøèáêó |
175 | return false; // âûâîäèì îøèáêó |
176 | }
|
176 | }
|
177 | 177 | ||
178 | 178 | ||
179 | else { // òàáëèöó óñïåøíî ñîçäàíà |
179 | else { // òàáëèöó óñïåøíî ñîçäàíà |
180 | // delete fld;
|
180 | // delete fld;
|
181 | delete tbl; // ÷èñòèì çà ñîáîé |
181 | delete tbl; // ÷èñòèì çà ñîáîé |
182 | return true; // ñîîáùàåì îá óñïåõå |
182 | return true; // ñîîáùàåì îá óñïåõå |
183 | 183 | ||
184 | }
|
184 | }
|
185 | 185 | ||
186 | tbl = new SqlTable(tr("DescriptionOfClasses")); // ñîçäàäèì òàáëèöó ñ èìåíåì DescriptionOfClassess äëÿ õðàíåíèÿ îïèñàíèÿ ïîëåé êëàññîâ |
186 | tbl = new SqlTable(tr("DescriptionOfClasses")); // ñîçäàäèì òàáëèöó ñ èìåíåì DescriptionOfClassess äëÿ õðàíåíèÿ îïèñàíèÿ ïîëåé êëàññîâ |
187 | fld = new TableField(tr("FieldName"), tbl); // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà ïîëåé, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ) |
187 | fld = new TableField(tr("FieldName"), tbl); // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà ïîëåé, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ) |
188 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
188 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
189 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
189 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
190 | fld->setDefaultValue(tr("New field")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
190 | fld->setDefaultValue(tr("New field")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
191 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
191 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
192 | 192 | ||
193 | fld = new TableField(tr("FieldAlias"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû ïîëåé êëàññîâ |
193 | fld = new TableField(tr("FieldAlias"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû ïîëåé êëàññîâ |
194 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
194 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
195 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
195 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
196 | fld->setDefaultValue(tr("New class alias")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
196 | fld->setDefaultValue(tr("New class alias")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
197 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
197 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
198 | 198 | ||
199 | fld = new TableField(tr("FieldType"), tbl); // ýòî ÷åòâåðòîå ïîëå òàáëèöû áóäåò òèï ïîëÿ êëàññà |
199 | fld = new TableField(tr("FieldType"), tbl); // ýòî ÷åòâåðòîå ïîëå òàáëèöû áóäåò òèï ïîëÿ êëàññà |
200 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
200 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
201 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
201 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
202 | fld->setDefaultValue(tr("CHAR(30)")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
202 | fld->setDefaultValue(tr("CHAR(30)")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
203 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
203 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
204 | 204 | ||
205 | fld = new TableField(tr("ClassIdentifer"), tbl); // ýòî ïÿòîå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ |
205 | fld = new TableField(tr("ClassIdentifer"), tbl); // ýòî ïÿòîå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ |
206 | fld->setNotNull(false); // ïîëå íå ìîæåò áûòü ïóñòûì |
206 | fld->setNotNull(false); // ïîëå íå ìîæåò áûòü ïóñòûì |
207 | fld->setType(tr("INT(10)")); // òèï ïîëÿ - öåëîå ÷èñëî |
207 | fld->setType(tr("INT(10)")); // òèï ïîëÿ - öåëîå ÷èñëî |
208 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
208 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
209 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
209 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
210 | 210 | ||
211 | 211 | ||
212 | 212 | ||
213 | fld = new TableField(tr("Comment"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ |
213 | fld = new TableField(tr("Comment"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ |
214 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
214 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
215 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
215 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
216 | fld->setDefaultValue(tr("without comments")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
216 | fld->setDefaultValue(tr("without comments")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
217 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
217 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
218 | 218 | ||
219 | 219 | ||
220 | if(!MySql::createTable(tbl)){ // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó |
220 | if(!MySql::createTable(tbl)){ // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó |
221 | 221 | ||
222 | // delete fld;
|
222 | // delete fld;
|
223 | delete tbl; // ÷èñòèì çà ñîáîé |
223 | delete tbl; // ÷èñòèì çà ñîáîé |
224 | return false; // âûâîäèì îøèáêó |
224 | return false; // âûâîäèì îøèáêó |
225 | }
|
225 | }
|
226 | 226 | ||
227 | 227 | ||
228 | else { // òàáëèöó óñïåøíî ñîçäàíà |
228 | else { // òàáëèöó óñïåøíî ñîçäàíà |
229 | // delete fld;
|
229 | // delete fld;
|
230 | delete tbl; // ÷èñòèì çà ñîáîé |
230 | delete tbl; // ÷èñòèì çà ñîáîé |
231 | return true; // ñîîáùàåì îá óñïåõå |
231 | return true; // ñîîáùàåì îá óñïåõå |
232 | 232 | ||
233 | }
|
233 | }
|
234 | 234 | ||
235 | tbl = new SqlTable(tr("Filters")); // ñîçäàäèì òàáëèöó ñ èìåíåì DescriptionOfClassess äëÿ õðàíåíèÿ îïèñàíèÿ ïîëåé êëàññîâ |
235 | tbl = new SqlTable(tr("Filters")); // ñîçäàäèì òàáëèöó ñ èìåíåì DescriptionOfClassess äëÿ õðàíåíèÿ îïèñàíèÿ ïîëåé êëàññîâ |
236 | fld = new TableField(tr("Model_ID"), tbl); // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà ïîëåé, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ) |
236 | fld = new TableField(tr("Model_ID"), tbl); // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà ïîëåé, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ) |
237 | fld->setNotNull(false); // ïîëå ìîæåò áûòü ïóñòûì |
237 | fld->setNotNull(false); // ïîëå ìîæåò áûòü ïóñòûì |
238 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
238 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
239 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
239 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
240 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
240 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
241 | 241 | ||
242 | 242 | ||
243 | if(!MySql::createTable(tbl)){ // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó |
243 | if(!MySql::createTable(tbl)){ // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó |
244 | 244 | ||
245 | // delete fld;
|
245 | // delete fld;
|
246 | delete tbl; // ÷èñòèì çà ñîáîé |
246 | delete tbl; // ÷èñòèì çà ñîáîé |
247 | return false; // âûâîäèì îøèáêó |
247 | return false; // âûâîäèì îøèáêó |
248 | }
|
248 | }
|
249 | 249 | ||
250 | 250 | ||
251 | else { // òàáëèöó óñïåøíî ñîçäàíà |
251 | else { // òàáëèöó óñïåøíî ñîçäàíà |
252 | // delete fld;
|
252 | // delete fld;
|
253 | delete tbl; // ÷èñòèì çà ñîáîé |
253 | delete tbl; // ÷èñòèì çà ñîáîé |
254 | return true; // ñîîáùàåì îá óñïåõå |
254 | return true; // ñîîáùàåì îá óñïåõå |
255 | 255 | ||
256 | }
|
256 | }
|
257 | 257 | ||
258 | 258 | ||
259 | 259 | ||
260 | 260 | ||
261 | 261 | ||
262 | }
|
262 | }
|
263 | 263 | ||
264 | 264 | ||
265 | 265 | ||
266 | 266 | ||
267 | bool MySql::createListOfClassesTable(){ |
267 | bool MySql::createListOfClassesTable(){ |
268 | 268 | ||
269 | SqlTable* tbl; |
269 | SqlTable* tbl; |
270 | TableField* fld; |
270 | TableField* fld; |
271 | if (!db.isOpen()){ |
271 | if (!db.isOpen()){ |
272 | MySql::mysqlLastError = tr("Database is not open!"); |
272 | MySql::mysqlLastError = tr("Database is not open!"); |
273 | return false; |
273 | return false; |
274 | }
|
274 | }
|
275 | tbl = new SqlTable(tr("ListOfClasses")); // ñîçäàäèì òàáëèöó ñ èìåíåì ListOfClasses äëÿ õðàíåíèÿ ñïèñêà êëàññîâ |
275 | tbl = new SqlTable(tr("ListOfClasses")); // ñîçäàäèì òàáëèöó ñ èìåíåì ListOfClasses äëÿ õðàíåíèÿ ñïèñêà êëàññîâ |
276 | fld = new TableField(tr("ClassName"), tbl); // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà êëàññîâ, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ) |
276 | fld = new TableField(tr("ClassName"), tbl); // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà êëàññîâ, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ) |
277 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
277 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
278 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
278 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
279 | fld->setDefaultValue(tr("New class")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
279 | fld->setDefaultValue(tr("New class")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
280 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
280 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
281 | 281 | ||
282 | fld = new TableField(tr("ClassAlias"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ |
282 | fld = new TableField(tr("ClassAlias"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ |
283 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
283 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
284 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
284 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
285 | fld->setDefaultValue(tr("New class alias")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
285 | fld->setDefaultValue(tr("New class alias")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
286 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
286 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
287 | 287 | ||
288 | fld = new TableField(tr("TableWhithInstance"), tbl); // ýòî ÷åòâåðòîå ïîëå òàáëèöû áóäåò õðàíèòü èìÿ òàáëèöû - õðàíèëèùà îáúåêòîâ êëàññà |
288 | fld = new TableField(tr("TableWhithInstance"), tbl); // ýòî ÷åòâåðòîå ïîëå òàáëèöû áóäåò õðàíèòü èìÿ òàáëèöû - õðàíèëèùà îáúåêòîâ êëàññà |
289 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
289 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
290 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
290 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
291 | fld->setDefaultValue(tr("New class instance")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
291 | fld->setDefaultValue(tr("New class instance")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
292 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
292 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
293 | 293 | ||
294 | fld = new TableField(tr("Comment"), tbl); // ýòî ïÿòîå ïîëå òàáëèöû áóäåò õðàíèòü êîììåíòàðèé |
294 | fld = new TableField(tr("Comment"), tbl); // ýòî ïÿòîå ïîëå òàáëèöû áóäåò õðàíèòü êîììåíòàðèé |
295 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
295 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
296 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
296 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
297 | fld->setDefaultValue(tr("without comments")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
297 | fld->setDefaultValue(tr("without comments")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
298 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
298 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
299 | 299 | ||
300 | fld = new TableField(tr("Icon"), tbl); // ýòî ïÿòîå ïîëå òàáëèöû áóäåò õðàíèòü èêîíêó äëÿ êëàññà |
300 | fld = new TableField(tr("Icon"), tbl); // ýòî ïÿòîå ïîëå òàáëèöû áóäåò õðàíèòü èêîíêó äëÿ êëàññà |
301 | // fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì
|
301 | // fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì
|
302 | fld->setType(tr("BLOB")); // òèï ïîëÿ - "BLOB" |
302 | fld->setType(tr("BLOB")); // òèï ïîëÿ - "BLOB" |
303 | // fld->setDefaultValue(tr("without comments")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
|
303 | // fld->setDefaultValue(tr("without comments")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
|
304 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
304 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
305 | 305 | ||
306 | 306 | ||
307 | 307 | ||
308 | 308 | ||
309 | if(!MySql::createTable(tbl)){ // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó |
309 | if(!MySql::createTable(tbl)){ // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó |
310 | 310 | ||
311 | // delete fld;
|
311 | // delete fld;
|
312 | delete tbl; // ÷èñòèì çà ñîáîé |
312 | delete tbl; // ÷èñòèì çà ñîáîé |
313 | return false; // âûâîäèì îøèáêó |
313 | return false; // âûâîäèì îøèáêó |
314 | }
|
314 | }
|
315 | 315 | ||
316 | 316 | ||
317 | else { // òàáëèöó óñïåøíî ñîçäàíà |
317 | else { // òàáëèöó óñïåøíî ñîçäàíà |
318 | // delete fld;
|
318 | // delete fld;
|
319 | delete tbl; // ÷èñòèì çà ñîáîé |
319 | delete tbl; // ÷èñòèì çà ñîáîé |
320 | return true; // ñîîáùàåì îá óñïåõå |
320 | return true; // ñîîáùàåì îá óñïåõå |
321 | 321 | ||
322 | }
|
322 | }
|
323 | 323 | ||
324 | 324 | ||
325 | 325 | ||
326 | }
|
326 | }
|
327 | 327 | ||
328 | 328 | ||
329 | 329 | ||
330 | 330 | ||
331 | bool MySql::createListModelsTable(){ // ñîçäàåò íåîáõîäèìóþ òàáëèöó â áàçå äàííûõ äëÿ õðàíåíèÿ ìîäåëåé (Òàáëèöà ListOfModels) |
331 | bool MySql::createListModelsTable(){ // ñîçäàåò íåîáõîäèìóþ òàáëèöó â áàçå äàííûõ äëÿ õðàíåíèÿ ìîäåëåé (Òàáëèöà ListOfModels) |
332 | 332 | ||
333 | SqlTable* tbl; |
333 | SqlTable* tbl; |
334 | TableField* fld; |
334 | TableField* fld; |
335 | if (!db.isOpen()){ |
335 | if (!db.isOpen()){ |
336 | MySql::mysqlLastError = tr("Database is not open!"); |
336 | MySql::mysqlLastError = tr("Database is not open!"); |
337 | return false; |
337 | return false; |
338 | }
|
338 | }
|
339 | tbl = new SqlTable(tr("ListOfModels")); // ñîçäàäèì òàáëèöó ñ èìåíåì ListOfModels äëÿ õðàíåíèÿ ñïèñêà ìîäåëåé |
339 | tbl = new SqlTable(tr("ListOfModels")); // ñîçäàäèì òàáëèöó ñ èìåíåì ListOfModels äëÿ õðàíåíèÿ ñïèñêà ìîäåëåé |
340 | fld = new TableField(tr("ModelName"), tbl); // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà ìîäåëåé, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ) |
340 | fld = new TableField(tr("ModelName"), tbl); // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà ìîäåëåé, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ) |
341 | //fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì
|
341 | //fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì
|
342 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
342 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
343 | fld->setDefaultValue(tr("New model")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
343 | fld->setDefaultValue(tr("New model")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
344 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
344 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
345 | 345 | ||
346 | fld = new TableField(tr("ModelString"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ìîäåëü êàê ñòðîêó |
346 | fld = new TableField(tr("ModelString"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ìîäåëü êàê ñòðîêó |
347 | //fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì
|
347 | //fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì
|
348 | fld->setType(tr("TEXT")); // òèï ïîëÿ - òåêñò |
348 | fld->setType(tr("TEXT")); // òèï ïîëÿ - òåêñò |
349 | //fld->setDefaultValue(tr("New class alias")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
|
349 | //fld->setDefaultValue(tr("New class alias")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
|
350 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
350 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
351 | 351 | ||
352 | fld = new TableField(tr("Enable"), tbl); // îòîáðàæàòü èëè íåò ìîäåëü |
352 | fld = new TableField(tr("Enable"), tbl); // îòîáðàæàòü èëè íåò ìîäåëü |
353 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
353 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
354 | fld->setType(tr("BOOL")); // òèï ïîëÿ - áóëåâîå |
354 | fld->setType(tr("BOOL")); // òèï ïîëÿ - áóëåâîå |
355 | fld->setDefaultValue(tr("1")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
355 | fld->setDefaultValue(tr("1")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
356 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
356 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
357 | 357 | ||
358 | fld = new TableField(tr("Comment"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ |
358 | fld = new TableField(tr("Comment"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ |
359 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
359 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
360 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
360 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
361 | fld->setDefaultValue(tr("without comments")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
361 | fld->setDefaultValue(tr("without comments")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
362 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
362 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
363 | 363 | ||
364 | 364 | ||
365 | if(!MySql::createTable(tbl)){ // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó |
365 | if(!MySql::createTable(tbl)){ // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó |
366 | 366 | ||
367 | // delete fld;
|
367 | // delete fld;
|
368 | delete tbl; // ÷èñòèì çà ñîáîé |
368 | delete tbl; // ÷èñòèì çà ñîáîé |
369 | return false; // âûâîäèì îøèáêó |
369 | return false; // âûâîäèì îøèáêó |
370 | }
|
370 | }
|
371 | 371 | ||
372 | 372 | ||
373 | else { // òàáëèöó óñïåøíî ñîçäàíà |
373 | else { // òàáëèöó óñïåøíî ñîçäàíà |
374 | // delete fld;
|
374 | // delete fld;
|
375 | delete tbl; // ÷èñòèì çà ñîáîé |
375 | delete tbl; // ÷èñòèì çà ñîáîé |
376 | return true; // ñîîáùàåì îá óñïåõå |
376 | return true; // ñîîáùàåì îá óñïåõå |
377 | 377 | ||
378 | }
|
378 | }
|
379 | 379 | ||
380 | 380 | ||
381 | }
|
381 | }
|
382 | 382 | ||
383 | bool MySql::createDescriptionOfClassesTable(){ // ñîçäàåò íåîáõîäèìóþ òàáëèöó â áàçå äàííûõ äëÿ õðàíåíèÿ îïèñàíèÿ êëàññîâ (Òàáëèöà DescriptionOfClasses) |
383 | bool MySql::createDescriptionOfClassesTable(){ // ñîçäàåò íåîáõîäèìóþ òàáëèöó â áàçå äàííûõ äëÿ õðàíåíèÿ îïèñàíèÿ êëàññîâ (Òàáëèöà DescriptionOfClasses) |
384 | SqlTable* tbl; |
384 | SqlTable* tbl; |
385 | TableField* fld; |
385 | TableField* fld; |
386 | if (!db.isOpen()){ |
386 | if (!db.isOpen()){ |
387 | MySql::mysqlLastError = tr("Database is not open!"); |
387 | MySql::mysqlLastError = tr("Database is not open!"); |
388 | return false; |
388 | return false; |
389 | }
|
389 | }
|
390 | tbl = new SqlTable(tr("DescriptionOfClasses")); // ñîçäàäèì òàáëèöó ñ èìåíåì DescriptionOfClassess äëÿ õðàíåíèÿ îïèñàíèÿ ïîëåé êëàññîâ |
390 | tbl = new SqlTable(tr("DescriptionOfClasses")); // ñîçäàäèì òàáëèöó ñ èìåíåì DescriptionOfClassess äëÿ õðàíåíèÿ îïèñàíèÿ ïîëåé êëàññîâ |
391 | fld = new TableField(tr("FieldName"), tbl); // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà ïîëåé, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ) |
391 | fld = new TableField(tr("FieldName"), tbl); // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà ïîëåé, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ) |
392 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
392 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
393 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
393 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
394 | fld->setDefaultValue(tr("New field")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
394 | fld->setDefaultValue(tr("New field")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
395 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
395 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
396 | 396 | ||
397 | fld = new TableField(tr("FieldAlias"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû ïîëåé êëàññîâ |
397 | fld = new TableField(tr("FieldAlias"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû ïîëåé êëàññîâ |
398 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
398 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
399 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
399 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
400 | fld->setDefaultValue(tr("New field alias")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
400 | fld->setDefaultValue(tr("New field alias")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
401 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
401 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
402 | 402 | ||
403 | fld = new TableField(tr("FieldType"), tbl); // ýòî ÷åòâåðòîå ïîëå òàáëèöû áóäåò òèï ïîëÿ êëàññà |
403 | fld = new TableField(tr("FieldType"), tbl); // ýòî ÷åòâåðòîå ïîëå òàáëèöû áóäåò òèï ïîëÿ êëàññà |
404 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
404 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
405 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
405 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
406 | fld->setDefaultValue(tr("CHAR(30)")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
406 | fld->setDefaultValue(tr("CHAR(30)")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
407 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
407 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
408 | 408 | ||
409 | fld = new TableField(tr("DefaultValue"), tbl); // ýòî ÷åòâåðòîå ïîëå òàáëèöû áóäåò òèï ïîëÿ êëàññà |
409 | fld = new TableField(tr("DefaultValue"), tbl); // ýòî ÷åòâåðòîå ïîëå òàáëèöû áóäåò òèï ïîëÿ êëàññà |
410 | fld->setNotNull(false); // ïîëå íå ìîæåò áûòü ïóñòûì |
410 | fld->setNotNull(false); // ïîëå íå ìîæåò áûòü ïóñòûì |
411 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
411 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
412 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
412 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
413 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
413 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
414 | 414 | ||
415 | fld = new TableField(tr("ClassIdentifer"), tbl); // ýòî ïÿòîå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ |
415 | fld = new TableField(tr("ClassIdentifer"), tbl); // ýòî ïÿòîå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ |
416 | fld->setNotNull(false); // ïîëå íå ìîæåò áûòü ïóñòûì |
416 | fld->setNotNull(false); // ïîëå íå ìîæåò áûòü ïóñòûì |
417 | fld->setType(tr("INT(10)")); // òèï ïîëÿ - öåëîå ÷èñëî |
417 | fld->setType(tr("INT(10)")); // òèï ïîëÿ - öåëîå ÷èñëî |
418 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
418 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
419 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
419 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
420 | 420 | ||
421 | 421 | ||
422 | 422 | ||
423 | fld = new TableField(tr("Comment"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ |
423 | fld = new TableField(tr("Comment"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ |
424 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
424 | fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì |
425 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
425 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
426 | fld->setDefaultValue(tr("without comments")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
426 | fld->setDefaultValue(tr("without comments")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
427 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
427 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
428 | 428 | ||
429 | 429 | ||
430 | if(!MySql::createTable(tbl)){ // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó |
430 | if(!MySql::createTable(tbl)){ // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó |
431 | 431 | ||
432 | // delete fld;
|
432 | // delete fld;
|
433 | delete tbl; // ÷èñòèì çà ñîáîé |
433 | delete tbl; // ÷èñòèì çà ñîáîé |
434 | return false; // âûâîäèì îøèáêó |
434 | return false; // âûâîäèì îøèáêó |
435 | }
|
435 | }
|
436 | 436 | ||
437 | 437 | ||
438 | else { // òàáëèöó óñïåøíî ñîçäàíà |
438 | else { // òàáëèöó óñïåøíî ñîçäàíà |
439 | // delete fld;
|
439 | // delete fld;
|
440 | delete tbl; // ÷èñòèì çà ñîáîé |
440 | delete tbl; // ÷èñòèì çà ñîáîé |
441 | return true; // ñîîáùàåì îá óñïåõå |
441 | return true; // ñîîáùàåì îá óñïåõå |
442 | 442 | ||
443 | }
|
443 | }
|
444 | 444 | ||
445 | 445 | ||
446 | }
|
446 | }
|
447 | 447 | ||
448 | 448 | ||
449 | bool MySql::createFiltersTable(){ // ñîçäàåò íåîáõîäèìóþ òàáëèöó â áàçå äàííûõ äëÿ õðàíåíèÿ ôèëüòðîâ (Òàáëèöà Filters) |
449 | bool MySql::createFiltersTable(){ // ñîçäàåò íåîáõîäèìóþ òàáëèöó â áàçå äàííûõ äëÿ õðàíåíèÿ ôèëüòðîâ (Òàáëèöà Filters) |
450 | 450 | ||
451 | SqlTable* tbl; |
451 | SqlTable* tbl; |
452 | TableField* fld; |
452 | TableField* fld; |
453 | if (!db.isOpen()){ |
453 | if (!db.isOpen()){ |
454 | MySql::mysqlLastError = tr("Database is not open!"); |
454 | MySql::mysqlLastError = tr("Database is not open!"); |
455 | return false; |
455 | return false; |
456 | }
|
456 | }
|
457 | tbl = new SqlTable(tr("Filters")); // ñîçäàäèì òàáëèöó ñ èìåíåì Filters äëÿ õðàíåíèÿ ôèëüòðîâ |
457 | tbl = new SqlTable(tr("Filters")); // ñîçäàäèì òàáëèöó ñ èìåíåì Filters äëÿ õðàíåíèÿ ôèëüòðîâ |
458 | 458 | ||
459 | fld = new TableField(tr("Model_ID"), tbl); // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü ID ìîäåëè, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ) |
459 | fld = new TableField(tr("Model_ID"), tbl); // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü ID ìîäåëè, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ) |
460 | fld->setNotNull(false); // ïîëå ìîæåò áûòü ïóñòûì |
460 | fld->setNotNull(false); // ïîëå ìîæåò áûòü ïóñòûì |
461 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
461 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
462 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
462 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
463 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
463 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
464 | 464 | ||
465 | fld = new TableField(tr("Class_ID"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ID êëàññà, ê êîòîðîìó áóäåò ïðèìåíÿòüñÿ ôèëüòð |
465 | fld = new TableField(tr("Class_ID"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ID êëàññà, ê êîòîðîìó áóäåò ïðèìåíÿòüñÿ ôèëüòð |
466 | fld->setNotNull(false); // ïîëå ìîæåò áûòü ïóñòûì |
466 | fld->setNotNull(false); // ïîëå ìîæåò áûòü ïóñòûì |
467 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
467 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
468 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
468 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
469 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
469 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
470 | 470 | ||
471 | 471 | ||
472 | fld = new TableField(tr("Ñondition"), tbl); // ýòî ÷åòâåðòîå ïîëå òàáëèöû áóäåò õðàíèòü ëîãè÷åñêèå óñëîâèå (AND, OR), c êîòîðûì âûðàæåíèå áóäåò äîáàâëÿòüñÿ â ôèëüòð |
472 | fld = new TableField(tr("Ñondition"), tbl); // ýòî ÷åòâåðòîå ïîëå òàáëèöû áóäåò õðàíèòü ëîãè÷åñêèå óñëîâèå (AND, OR), c êîòîðûì âûðàæåíèå áóäåò äîáàâëÿòüñÿ â ôèëüòð |
473 | fld->setNotNull(false); // ïîëå ìîæåò áûòü ïóñòûì |
473 | fld->setNotNull(false); // ïîëå ìîæåò áûòü ïóñòûì |
474 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
474 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
475 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
475 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
476 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
476 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
477 | 477 | ||
478 | 478 | ||
479 | 479 | ||
480 | fld = new TableField(tr("FieldName"), tbl); // ýòî ïÿòîå ïîëå òàáëèöû áóäåò õðàíèòü èìÿ ïîëÿ, ïî êîòîðîìó áóäåò ïðèìåíÿòüñÿ ôèëüòð |
480 | fld = new TableField(tr("FieldName"), tbl); // ýòî ïÿòîå ïîëå òàáëèöû áóäåò õðàíèòü èìÿ ïîëÿ, ïî êîòîðîìó áóäåò ïðèìåíÿòüñÿ ôèëüòð |
481 | fld->setNotNull(false); // ïîëå ìîæåò áûòü ïóñòûì |
481 | fld->setNotNull(false); // ïîëå ìîæåò áûòü ïóñòûì |
482 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
482 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
483 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
483 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
484 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
484 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
485 | 485 | ||
486 | fld = new TableField(tr("ÑonditionalSymbol"), tbl); // ýòî øåñòîå ïîëå òàáëèöû áóäåò õðàíèòü ñèìâîë óñëîâèÿ (>, =, <) |
486 | fld = new TableField(tr("ÑonditionalSymbol"), tbl); // ýòî øåñòîå ïîëå òàáëèöû áóäåò õðàíèòü ñèìâîë óñëîâèÿ (>, =, <) |
487 | fld->setNotNull(false); // ïîëå ìîæåò áûòü ïóñòûì |
487 | fld->setNotNull(false); // ïîëå ìîæåò áûòü ïóñòûì |
488 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
488 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
489 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
489 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
490 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
490 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
491 | 491 | ||
492 | 492 | ||
493 | 493 | ||
494 | fld = new TableField(tr("ValueForComparison"), tbl); // ýòî ñåäüìîå ïîëå òàáëèöû áóäåò õðàíèòü çíà÷åíèå äëÿ ñðàâíåíèÿ |
494 | fld = new TableField(tr("ValueForComparison"), tbl); // ýòî ñåäüìîå ïîëå òàáëèöû áóäåò õðàíèòü çíà÷åíèå äëÿ ñðàâíåíèÿ |
495 | fld->setNotNull(false); // ïîëå ìîæåò áûòü ïóñòûì |
495 | fld->setNotNull(false); // ïîëå ìîæåò áûòü ïóñòûì |
496 | fld->setType(tr("TEXT")); // òèï ïîëÿ - òåêñò |
496 | fld->setType(tr("TEXT")); // òèï ïîëÿ - òåêñò |
497 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
497 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
498 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
498 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
499 | 499 | ||
500 | 500 | ||
- | 501 | fld = new TableField(tr("PostÑondition"), tbl); // ýòî âîñüìîå ïîëå òàáëèöû áóäåò õðàíèòü ëîãè÷åñêèå óñëîâèå (AND, OR), c êîòîðûì âûðàæåíèå áóäåò äîáàâëÿòüñÿ â ôèëüòð |
|
- | 502 | fld->setNotNull(false); // ïîëå ìîæåò áûòü ïóñòûì |
|
- | 503 | fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ |
|
- | 504 | fld->setDefaultValue(tr("NULL")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ |
|
- | 505 | tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó |
|
501 | 506 | ||
502 | 507 | ||
503 | if(!MySql::createTable(tbl)){ // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó |
508 | if(!MySql::createTable(tbl)){ // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó |
504 | 509 | ||
505 | // delete fld;
|
510 | // delete fld;
|
506 | delete tbl; // ÷èñòèì çà ñîáîé |
511 | delete tbl; // ÷èñòèì çà ñîáîé |
507 | return false; // âûâîäèì îøèáêó |
512 | return false; // âûâîäèì îøèáêó |
508 | }
|
513 | }
|
509 | 514 | ||
510 | 515 | ||
511 | else { // òàáëèöó óñïåøíî ñîçäàíà |
516 | else { // òàáëèöó óñïåøíî ñîçäàíà |
512 | // delete fld;
|
517 | // delete fld;
|
513 | delete tbl; // ÷èñòèì çà ñîáîé |
518 | delete tbl; // ÷èñòèì çà ñîáîé |
514 | return true; // ñîîáùàåì îá óñïåõå |
519 | return true; // ñîîáùàåì îá óñïåõå |
515 | 520 | ||
516 | }
|
521 | }
|
517 | 522 | ||
518 | 523 | ||
519 | }
|
524 | }
|
520 | 525 | ||
521 | 526 | ||
522 | 527 | ||
523 | QSqlError MySql::dbLastError(){ // ôóíêöèÿ ôîçâðàùàåò ïîñëåäíþþ îøèáêó áàçû äàííûõ |
528 | QSqlError MySql::dbLastError(){ // ôóíêöèÿ ôîçâðàùàåò ïîñëåäíþþ îøèáêó áàçû äàííûõ |
524 | QString error;
|
529 | QString error;
|
525 | error = db.lastError().text(); |
530 | error = db.lastError().text(); |
526 | 531 | ||
527 | return db.lastError(); |
532 | return db.lastError(); |
528 | }
|
533 | }
|
529 | 534 | ||
530 | 535 | ||
531 | void MySql::close(){ // çàêîûâàåì ñîåäèíåíèå ñ áàçîé |
536 | void MySql::close(){ // çàêîûâàåì ñîåäèíåíèå ñ áàçîé |
532 | db.close(); |
537 | db.close(); |
533 | 538 | ||
534 | }
|
539 | }
|
535 | 540 |