Хранилища Subversion OpenInventory

Редакция

Редакция 73 | Редакция 135 | К новейшей редакции | Только различия | Не учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS

Редакция 73 Редакция 96
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(){
-
 
9
db.close();
8
10
}
9
11
10
/************************************************
12
/************************************************
11
** Ôóíêöèÿ ïðèñâîåíèÿ çíà÷åíèÿ èìåíè áàçû äàííûõ
13
** Ôóíêöèÿ ïðèñâîåíèÿ çíà÷åíèÿ èìåíè áàçû äàííûõ
12
**
14
**
13
************************************************/
15
************************************************/
14
16
15
17
16
18
17
void MySql::setDatabaseName(QString name){
19
void MySql::setDatabaseName(QString name){
18
    MySql::sqlDatabaseName = name;
20
    MySql::sqlDatabaseName = name;
19
}
21
}
20
22
21
23
22
bool MySql::connect(){
24
bool MySql::connect(){
23
    db = QSqlDatabase::addDatabase("QMYSQL");
25
    db = QSqlDatabase::addDatabase("QMYSQL");
24
26
25
    db.setHostName(MySql::sqlHostName);
27
    db.setHostName(MySql::sqlHostName);
26
    db.setDatabaseName(MySql::sqlDatabaseName);
28
    db.setDatabaseName(MySql::sqlDatabaseName);
27
    db.setUserName(MySql::sqlUserName);
29
    db.setUserName(MySql::sqlUserName);
28
    db.setPassword(MySql::sqlPassword);
30
    db.setPassword(MySql::sqlPassword);
29
    bool ok = db.open();
31
    bool ok = db.open();
30
    if (ok) return true;
32
    if (ok) return true;
31
    else {
33
    else {
32
          MySql::mysqlLastError = db.lastError().text();
34
          MySql::mysqlLastError = db.lastError().text();
33
        return false; }
35
        return false; }
34
36
35
    /*
37
    /*
36
    pdb->setHostName(hostName);
38
    pdb->setHostName(hostName);
37
    pdb->setDatabaseName(baseName);
39
    pdb->setDatabaseName(baseName);
38
    pdb->setUserName(userName);
40
    pdb->setUserName(userName);
39
    pdb->setPassword(password);
41
    pdb->setPassword(password);
40
    bool ok = pdb->open();
42
    bool ok = pdb->open();
41

43

42
if (!ok) {
44
if (!ok) {
43
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
45
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
44
                                                                            QWidget(this->parent()),                      // Ðîäèòåëüñêèé âèäæåò.
46
                                                                            QWidget(this->parent()),                      // Ðîäèòåëüñêèé âèäæåò.
45
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
47
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
46
                                                                            db.lastError().text());          // Òåêñò ñîîáùåíèÿ.
48
                                                                            db.lastError().text());          // Òåêñò ñîîáùåíèÿ.
47
                     }
49
                     }
48
  */
50
  */
49
51
50
    return true;
52
    return true;
51
}
53
}
52
54
53
55
54
void MySql::setUserName(QString uname){
56
void MySql::setUserName(QString uname){
55
    MySql::sqlUserName = uname;
57
    MySql::sqlUserName = uname;
56
}
58
}
57
59
58
void MySql::setPassword(QString passwrd){
60
void MySql::setPassword(QString passwrd){
59
    MySql::sqlPassword = passwrd;
61
    MySql::sqlPassword = passwrd;
60
}
62
}
61
63
62
64
63
void MySql::setHostName(QString hname){
65
void MySql::setHostName(QString hname){
64
    MySql::sqlHostName = hname;
66
    MySql::sqlHostName = hname;
65
}
67
}
66
68
67
bool  MySql::createTable(SqlTable* table){ // ñîçäàåò â áàçå äàííûõ òàáëèöó
69
bool  MySql::createTable(SqlTable* table){ // ñîçäàåò â áàçå äàííûõ òàáëèöó
68
QSqlQuery q;
70
QSqlQuery q;
69
bool ok;
71
bool ok;
70
ok = q.prepare(table->sqlString());
72
ok = q.prepare(table->sqlString());
71
if(!ok) {
73
if(!ok) {
72
    MySql::mysqlLastError = q.lastError().text();
74
    MySql::mysqlLastError = q.lastError().text();
73
    return false;}
75
    return false;}
74
ok = q.exec();
76
ok = q.exec();
75
if(!ok) {
77
if(!ok) {
76
    MySql::mysqlLastError = q.lastError().text();
78
    MySql::mysqlLastError = q.lastError().text();
77
    return false;}
79
    return false;}
78
else return true;
80
else return true;
79
}
81
}
80
82
81
83
82
84
83
QString MySql::lasError(){
85
QString MySql::lasError(){
84
86
85
    return MySql::mysqlLastError;
87
    return MySql::mysqlLastError;
86
}
88
}
87
89
88
90
89
91
90
/************************************************
92
/************************************************
91
** Ôóíêöèÿ ñîçäàåò íåîáõîäèìûå òàáëèöû â áàçå äàííûõ
93
** Ôóíêöèÿ ñîçäàåò íåîáõîäèìûå òàáëèöû â áàçå äàííûõ
92
** äëÿ õðàíåíèÿ íàçâàíèÿ è îïèñàíèÿ êëàññîâ
94
** äëÿ õðàíåíèÿ íàçâàíèÿ è îïèñàíèÿ êëàññîâ
93
** (Òàáëèöà ListOfClasses è Òàáëèöà DescriptionOfClasses)
95
** (Òàáëèöà ListOfClasses è Òàáëèöà DescriptionOfClasses)
94
************************************************/
96
************************************************/
95
97
96
98
97
bool MySql::createDataBase(){
99
bool MySql::createDataBase(){
98
    SqlTable* tbl;
100
    SqlTable* tbl;
99
    TableField* fld;
101
    TableField* fld;
100
    if (!db.isOpen()){
102
    if (!db.isOpen()){
101
        MySql::mysqlLastError = tr("Database is not open!");
103
        MySql::mysqlLastError = tr("Database is not open!");
102
        return false;
104
        return false;
103
    }
105
    }
104
    tbl = new SqlTable(tr("ListOfClasses"));        // ñîçäàäèì òàáëèöó ñ èìåíåì ListOfClasses äëÿ õðàíåíèÿ ñïèñêà êëàññîâ
106
    tbl = new SqlTable(tr("ListOfClasses"));        // ñîçäàäèì òàáëèöó ñ èìåíåì ListOfClasses äëÿ õðàíåíèÿ ñïèñêà êëàññîâ
105
    fld = new TableField(tr("ClassName"), tbl);          // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà êëàññîâ, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ)
107
    fld = new TableField(tr("ClassName"), tbl);          // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà êëàññîâ, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ)
106
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
108
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
107
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
109
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
108
    fld->setDefaultValue(tr("New class"));          // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
110
    fld->setDefaultValue(tr("New class"));          // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
109
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
111
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
110
112
111
    fld = new TableField(tr("ClassAlias"), tbl);    // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
113
    fld = new TableField(tr("ClassAlias"), tbl);    // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
112
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
114
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
113
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
115
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
114
    fld->setDefaultValue(tr("New class alias"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
116
    fld->setDefaultValue(tr("New class alias"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
115
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
117
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
116
118
117
    fld = new TableField(tr("TableWhithInstance"), tbl);    // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
119
    fld = new TableField(tr("TableWhithInstance"), tbl);    // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
118
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
120
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
119
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
121
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
120
    fld->setDefaultValue(tr("New class instance"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
122
    fld->setDefaultValue(tr("New class instance"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
121
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
123
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
122
124
123
    fld = new TableField(tr("Comment"), tbl);    // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
125
    fld = new TableField(tr("Comment"), tbl);    // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
124
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
126
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
125
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
127
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
126
    fld->setDefaultValue(tr("without comments"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
128
    fld->setDefaultValue(tr("without comments"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
127
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
129
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
128
130
129
131
130
    if(!MySql::createTable(tbl)){                   // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó
132
    if(!MySql::createTable(tbl)){                   // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó
131
133
132
   //     delete fld;
134
   //     delete fld;
133
        delete tbl;                                 // ÷èñòèì çà ñîáîé
135
        delete tbl;                                 // ÷èñòèì çà ñîáîé
134
        return false;                               // âûâîäèì îøèáêó
136
        return false;                               // âûâîäèì îøèáêó
135
    }
137
    }
136
138
137
139
138
    else {                                          // òàáëèöó óñïåøíî ñîçäàíà
140
    else {                                          // òàáëèöó óñïåøíî ñîçäàíà
139
 //       delete fld;
141
 //       delete fld;
140
        delete tbl;                                 // ÷èñòèì çà ñîáîé
142
        delete tbl;                                 // ÷èñòèì çà ñîáîé
141
        return true;                                // ñîîáùàåì îá óñïåõå
143
        return true;                                // ñîîáùàåì îá óñïåõå
142
144
143
    }
145
    }
144
146
145
    tbl = new SqlTable(tr("DescriptionOfClasses")); // ñîçäàäèì òàáëèöó ñ èìåíåì DescriptionOfClassess äëÿ õðàíåíèÿ îïèñàíèÿ ïîëåé êëàññîâ
147
    tbl = new SqlTable(tr("DescriptionOfClasses")); // ñîçäàäèì òàáëèöó ñ èìåíåì DescriptionOfClassess äëÿ õðàíåíèÿ îïèñàíèÿ ïîëåé êëàññîâ
146
    fld = new TableField(tr("FieldName"), tbl);     // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà ïîëåé, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ)
148
    fld = new TableField(tr("FieldName"), tbl);     // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà ïîëåé, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ)
147
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
149
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
148
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
150
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
149
    fld->setDefaultValue(tr("New field"));          // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
151
    fld->setDefaultValue(tr("New field"));          // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
150
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
152
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
151
153
152
    fld = new TableField(tr("FieldAlias"), tbl);    // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû ïîëåé êëàññîâ
154
    fld = new TableField(tr("FieldAlias"), tbl);    // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû ïîëåé êëàññîâ
153
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
155
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
154
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
156
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
155
    fld->setDefaultValue(tr("New class alias"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
157
    fld->setDefaultValue(tr("New class alias"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
156
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
158
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
157
159
158
    fld = new TableField(tr("FieldType"), tbl);     // ýòî ÷åòâåðòîå ïîëå òàáëèöû áóäåò òèï ïîëÿ êëàññà
160
    fld = new TableField(tr("FieldType"), tbl);     // ýòî ÷åòâåðòîå ïîëå òàáëèöû áóäåò òèï ïîëÿ êëàññà
159
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
161
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
160
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
162
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
161
    fld->setDefaultValue(tr("CHAR(30)"));           // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
163
    fld->setDefaultValue(tr("CHAR(30)"));           // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
162
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
164
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
163
165
164
    fld = new TableField(tr("ClassIdentifer"), tbl);    // ýòî ïÿòîå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
166
    fld = new TableField(tr("ClassIdentifer"), tbl);    // ýòî ïÿòîå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
165
    fld->setNotNull(false);                          // ïîëå íå ìîæåò áûòü ïóñòûì
167
    fld->setNotNull(false);                          // ïîëå íå ìîæåò áûòü ïóñòûì
166
    fld->setType(tr("INT(10)"));                   // òèï ïîëÿ - öåëîå ÷èñëî
168
    fld->setType(tr("INT(10)"));                   // òèï ïîëÿ - öåëîå ÷èñëî
167
    fld->setDefaultValue(tr("NULL"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
169
    fld->setDefaultValue(tr("NULL"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
168
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
170
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
169
171
170
172
171
173
172
    fld = new TableField(tr("Comment"), tbl);    // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
174
    fld = new TableField(tr("Comment"), tbl);    // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
173
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
175
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
174
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
176
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
175
    fld->setDefaultValue(tr("without comments"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
177
    fld->setDefaultValue(tr("without comments"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
176
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
178
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
177
179
178
180
179
    if(!MySql::createTable(tbl)){                   // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó
181
    if(!MySql::createTable(tbl)){                   // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó
180
182
181
   //     delete fld;
183
   //     delete fld;
182
        delete tbl;                                 // ÷èñòèì çà ñîáîé
184
        delete tbl;                                 // ÷èñòèì çà ñîáîé
183
        return false;                               // âûâîäèì îøèáêó
185
        return false;                               // âûâîäèì îøèáêó
184
    }
186
    }
185
187
186
188
187
    else {                                          // òàáëèöó óñïåøíî ñîçäàíà
189
    else {                                          // òàáëèöó óñïåøíî ñîçäàíà
188
 //       delete fld;
190
 //       delete fld;
189
        delete tbl;                                 // ÷èñòèì çà ñîáîé
191
        delete tbl;                                 // ÷èñòèì çà ñîáîé
190
        return true;                                // ñîîáùàåì îá óñïåõå
192
        return true;                                // ñîîáùàåì îá óñïåõå
191
193
192
    }
194
    }
193
195
194
196
195
197
196
198
197
199
198
}
200
}
199
201
200
202
201
203
202
204
203
bool MySql::createListOfClassesTable(){
205
bool MySql::createListOfClassesTable(){
204
206
205
    SqlTable* tbl;
207
    SqlTable* tbl;
206
    TableField* fld;
208
    TableField* fld;
207
    if (!db.isOpen()){
209
    if (!db.isOpen()){
208
        MySql::mysqlLastError = tr("Database is not open!");
210
        MySql::mysqlLastError = tr("Database is not open!");
209
        return false;
211
        return false;
210
    }
212
    }
211
    tbl = new SqlTable(tr("ListOfClasses"));        // ñîçäàäèì òàáëèöó ñ èìåíåì ListOfClasses äëÿ õðàíåíèÿ ñïèñêà êëàññîâ
213
    tbl = new SqlTable(tr("ListOfClasses"));        // ñîçäàäèì òàáëèöó ñ èìåíåì ListOfClasses äëÿ õðàíåíèÿ ñïèñêà êëàññîâ
212
    fld = new TableField(tr("ClassName"), tbl);          // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà êëàññîâ, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ)
214
    fld = new TableField(tr("ClassName"), tbl);          // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà êëàññîâ, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ)
213
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
215
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
214
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
216
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
215
    fld->setDefaultValue(tr("New class"));          // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
217
    fld->setDefaultValue(tr("New class"));          // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
216
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
218
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
217
219
218
    fld = new TableField(tr("ClassAlias"), tbl);    // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
220
    fld = new TableField(tr("ClassAlias"), tbl);    // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
219
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
221
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
220
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
222
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
221
    fld->setDefaultValue(tr("New class alias"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
223
    fld->setDefaultValue(tr("New class alias"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
222
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
224
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
223
225
224
    fld = new TableField(tr("TableWhithInstance"), tbl);    // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
226
    fld = new TableField(tr("TableWhithInstance"), tbl);    // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
225
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
227
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
226
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
228
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
227
    fld->setDefaultValue(tr("New class instance"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
229
    fld->setDefaultValue(tr("New class instance"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
228
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
230
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
229
231
230
    fld = new TableField(tr("Comment"), tbl);    // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
232
    fld = new TableField(tr("Comment"), tbl);    // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
231
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
233
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
232
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
234
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
233
    fld->setDefaultValue(tr("without comments"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
235
    fld->setDefaultValue(tr("without comments"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
234
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
236
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
235
237
236
238
237
    if(!MySql::createTable(tbl)){                   // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó
239
    if(!MySql::createTable(tbl)){                   // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó
238
240
239
   //     delete fld;
241
   //     delete fld;
240
        delete tbl;                                 // ÷èñòèì çà ñîáîé
242
        delete tbl;                                 // ÷èñòèì çà ñîáîé
241
        return false;                               // âûâîäèì îøèáêó
243
        return false;                               // âûâîäèì îøèáêó
242
    }
244
    }
243
245
244
246
245
    else {                                          // òàáëèöó óñïåøíî ñîçäàíà
247
    else {                                          // òàáëèöó óñïåøíî ñîçäàíà
246
 //       delete fld;
248
 //       delete fld;
247
        delete tbl;                                 // ÷èñòèì çà ñîáîé
249
        delete tbl;                                 // ÷èñòèì çà ñîáîé
248
        return true;                                // ñîîáùàåì îá óñïåõå
250
        return true;                                // ñîîáùàåì îá óñïåõå
249
251
250
    }
252
    }
251
253
252
254
253
255
254
}
256
}
255
257
256
258
257
259
258
260
259
bool MySql::createDescriptionOfClassesTable(){ // ñîçäàåò íåîáõîäèìóþ òàáëèöó â áàçå äàííûõ äëÿ õðàíåíèÿ îïèñàíèÿ êëàññîâ (Òàáëèöà DescriptionOfClasses)
261
bool MySql::createDescriptionOfClassesTable(){ // ñîçäàåò íåîáõîäèìóþ òàáëèöó â áàçå äàííûõ äëÿ õðàíåíèÿ îïèñàíèÿ êëàññîâ (Òàáëèöà DescriptionOfClasses)
260
    SqlTable* tbl;
262
    SqlTable* tbl;
261
    TableField* fld;
263
    TableField* fld;
262
    if (!db.isOpen()){
264
    if (!db.isOpen()){
263
        MySql::mysqlLastError = tr("Database is not open!");
265
        MySql::mysqlLastError = tr("Database is not open!");
264
        return false;
266
        return false;
265
    }
267
    }
266
    tbl = new SqlTable(tr("DescriptionOfClasses")); // ñîçäàäèì òàáëèöó ñ èìåíåì DescriptionOfClassess äëÿ õðàíåíèÿ îïèñàíèÿ ïîëåé êëàññîâ
268
    tbl = new SqlTable(tr("DescriptionOfClasses")); // ñîçäàäèì òàáëèöó ñ èìåíåì DescriptionOfClassess äëÿ õðàíåíèÿ îïèñàíèÿ ïîëåé êëàññîâ
267
    fld = new TableField(tr("FieldName"), tbl);     // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà ïîëåé, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ)
269
    fld = new TableField(tr("FieldName"), tbl);     // ýòî âòîðîå ïîëå òàáëèöû áóäåò õðàíèòü èìåíà ïîëåé, ïåðâîå ïîëå ID óæå èìååòñÿ â íîâîé òàáëèöå (îíî ñîçäàåòñÿ ïî óìîë÷àíèþ)
268
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
270
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
269
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
271
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
270
    fld->setDefaultValue(tr("New field"));          // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
272
    fld->setDefaultValue(tr("New field"));          // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
271
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
273
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
272
274
273
    fld = new TableField(tr("FieldAlias"), tbl);    // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû ïîëåé êëàññîâ
275
    fld = new TableField(tr("FieldAlias"), tbl);    // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû ïîëåé êëàññîâ
274
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
276
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
275
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
277
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
276
    fld->setDefaultValue(tr("New field alias"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
278
    fld->setDefaultValue(tr("New field alias"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
277
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
279
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
278
280
279
    fld = new TableField(tr("FieldType"), tbl);     // ýòî ÷åòâåðòîå ïîëå òàáëèöû áóäåò òèï ïîëÿ êëàññà
281
    fld = new TableField(tr("FieldType"), tbl);     // ýòî ÷åòâåðòîå ïîëå òàáëèöû áóäåò òèï ïîëÿ êëàññà
280
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
282
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
281
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
283
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
282
    fld->setDefaultValue(tr("CHAR(30)"));           // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
284
    fld->setDefaultValue(tr("CHAR(30)"));           // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
283
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
285
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
284
286
285
    fld = new TableField(tr("DefaultValue"), tbl);  // ýòî ÷åòâåðòîå ïîëå òàáëèöû áóäåò òèï ïîëÿ êëàññà
287
    fld = new TableField(tr("DefaultValue"), tbl);  // ýòî ÷åòâåðòîå ïîëå òàáëèöû áóäåò òèï ïîëÿ êëàññà
286
    fld->setNotNull(false);                         // ïîëå íå ìîæåò áûòü ïóñòûì
288
    fld->setNotNull(false);                         // ïîëå íå ìîæåò áûòü ïóñòûì
287
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
289
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
288
    fld->setDefaultValue(tr("NULL"));               // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
290
    fld->setDefaultValue(tr("NULL"));               // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
289
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
291
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
290
292
291
    fld = new TableField(tr("ClassIdentifer"), tbl);    // ýòî ïÿòîå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
293
    fld = new TableField(tr("ClassIdentifer"), tbl);    // ýòî ïÿòîå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
292
    fld->setNotNull(false);                          // ïîëå íå ìîæåò áûòü ïóñòûì
294
    fld->setNotNull(false);                          // ïîëå íå ìîæåò áûòü ïóñòûì
293
    fld->setType(tr("INT(10)"));                   // òèï ïîëÿ - öåëîå ÷èñëî
295
    fld->setType(tr("INT(10)"));                   // òèï ïîëÿ - öåëîå ÷èñëî
294
    fld->setDefaultValue(tr("NULL"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
296
    fld->setDefaultValue(tr("NULL"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
295
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
297
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
296
298
297
299
298
300
299
    fld = new TableField(tr("Comment"), tbl);    // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
301
    fld = new TableField(tr("Comment"), tbl);    // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
300
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
302
    fld->setNotNull(true);                          // ïîëå íå ìîæåò áûòü ïóñòûì
301
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
303
    fld->setType(tr("CHAR(30)"));                   // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
302
    fld->setDefaultValue(tr("without comments"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
304
    fld->setDefaultValue(tr("without comments"));    // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
303
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
305
    tbl->append(fld);                               // äîáàâëÿåì ïîëå â òàáëèöó
304
306
305
307
306
    if(!MySql::createTable(tbl)){                   // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó
308
    if(!MySql::createTable(tbl)){                   // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó
307
309
308
   //     delete fld;
310
   //     delete fld;
309
        delete tbl;                                 // ÷èñòèì çà ñîáîé
311
        delete tbl;                                 // ÷èñòèì çà ñîáîé
310
        return false;                               // âûâîäèì îøèáêó
312
        return false;                               // âûâîäèì îøèáêó
311
    }
313
    }
312
314
313
315
314
    else {                                          // òàáëèöó óñïåøíî ñîçäàíà
316
    else {                                          // òàáëèöó óñïåøíî ñîçäàíà
315
 //       delete fld;
317
 //       delete fld;
316
        delete tbl;                                 // ÷èñòèì çà ñîáîé
318
        delete tbl;                                 // ÷èñòèì çà ñîáîé
317
        return true;                                // ñîîáùàåì îá óñïåõå
319
        return true;                                // ñîîáùàåì îá óñïåõå
318
320
319
    }
321
    }
320
322
321
323
322
}
324
}
323
325
324
326
325
QSqlError MySql::dbLastError(){ // ôóíêöèÿ ôîçâðàùàåò ïîñëåäíþþ îøèáêó áàçû äàííûõ
327
QSqlError MySql::dbLastError(){ // ôóíêöèÿ ôîçâðàùàåò ïîñëåäíþþ îøèáêó áàçû äàííûõ
326
    QString error;
328
    QString error;
327
    error = db.lastError().text();
329
    error = db.lastError().text();
328
330
329
    return db.lastError();
331
    return db.lastError();
330
}
332
}
331
 
333