Subversion Repositories OpenInventory

Rev

Rev 161 | Rev 216 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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