Хранилища Subversion OpenInventory

Редакция

Редакция 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