Хранилища Subversion OpenInventory

Редакция

Редакция 210 | Редакция 218 | К новейшей редакции | Содержимое файла | Сравнить с предыдущей | Последнее изменение | Открыть журнал | RSS

Редакция Автор № строки Строка
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
 
216 pingvin 459
    fld = new TableField(tr("Model_ID"), tbl);      //       ID ,   ID      (   )
210 pingvin 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
 
216 pingvin 471
 
472
    fld = new TableField(tr("ondition"), tbl);     //          (AND, OR), c      
210 pingvin 473
    fld->setNotNull(false);                         //    
216 pingvin 474
    fld->setType(tr("CHAR(30)"));                   //   -   30 
210 pingvin 475
    fld->setDefaultValue(tr("NULL"));               //    
476
    tbl->append(fld);                               //    
477
 
478
 
216 pingvin 479
 
480
    fld = new TableField(tr("FieldName"), tbl);     //        ,     
210 pingvin 481
    fld->setNotNull(false);                         //    
482
    fld->setType(tr("CHAR(30)"));                   //   -   30 
483
    fld->setDefaultValue(tr("NULL"));               //    
484
    tbl->append(fld);                               //    
485
 
486
 
216 pingvin 487
 
488
 
489
 
210 pingvin 490
    if(!MySql::createTable(tbl)){                   //     
491
 
492
   //     delete fld;
493
        delete tbl;                                 //   
494
        return false;                               //  
495
    }
496
 
497
 
498
    else {                                          //   
499
 //       delete fld;
500
        delete tbl;                                 //   
501
        return true;                                //   
502
 
503
    }
504
 
505
 
506
}
507
 
508
 
509
 
73 pingvin 510
QSqlError MySql::dbLastError(){ //      
511
    QString error;
512
    error = db.lastError().text();
513
 
514
    return db.lastError();
515
}
135 pingvin 516
 
517
 
518
void MySql::close(){ //    
519
    db.close();
520
 
521
}