Хранилища Subversion OpenInventory

Редакция

Редакция 143 | Редакция 216 | К новейшей редакции | Содержимое файла | Сравнить с предыдущей | Последнее изменение | Открыть журнал | 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
 
235
 
236
 
237
 
238
 
45 pingvin 239
}
56 pingvin 240
 
241
 
242
 
243
 
244
bool MySql::createListOfClassesTable(){
245
 
246
    SqlTable* tbl;
247
    TableField* fld;
248
    if (!db.isOpen()){
249
        MySql::mysqlLastError = tr("Database is not open!");
250
        return false;
251
    }
252
    tbl = new SqlTable(tr("ListOfClasses"));        //     ListOfClasses    
253
    fld = new TableField(tr("ClassName"), tbl);          //        ,   ID      (   )
254
    fld->setNotNull(true);                          //     
255
    fld->setType(tr("CHAR(30)"));                   //   -   30 
256
    fld->setDefaultValue(tr("New class"));          //    
257
    tbl->append(fld);                               //    
258
 
259
    fld = new TableField(tr("ClassAlias"), tbl);    //        
260
    fld->setNotNull(true);                          //     
261
    fld->setType(tr("CHAR(30)"));                   //   -   30 
262
    fld->setDefaultValue(tr("New class alias"));    //    
263
    tbl->append(fld);                               //    
264
 
161 pingvin 265
    fld = new TableField(tr("TableWhithInstance"), tbl);    //         -   
56 pingvin 266
    fld->setNotNull(true);                          //     
267
    fld->setType(tr("CHAR(30)"));                   //   -   30 
268
    fld->setDefaultValue(tr("New class instance"));    //    
269
    tbl->append(fld);                               //    
270
 
161 pingvin 271
    fld = new TableField(tr("Comment"), tbl);    //       
56 pingvin 272
    fld->setNotNull(true);                          //     
273
    fld->setType(tr("CHAR(30)"));                   //   -   30 
274
    fld->setDefaultValue(tr("without comments"));    //    
275
    tbl->append(fld);                               //    
276
 
161 pingvin 277
    fld = new TableField(tr("Icon"), tbl);    //         
278
//    fld->setNotNull(true);                          //     
279
    fld->setType(tr("BLOB"));                   //   - "BLOB"
280
//    fld->setDefaultValue(tr("without comments"));    //    
281
    tbl->append(fld);                               //    
56 pingvin 282
 
161 pingvin 283
 
284
 
285
 
56 pingvin 286
    if(!MySql::createTable(tbl)){                   //     
287
 
288
   //     delete fld;
289
        delete tbl;                                 //   
290
        return false;                               //  
291
    }
292
 
293
 
294
    else {                                          //   
295
 //       delete fld;
296
        delete tbl;                                 //   
297
        return true;                                //   
298
 
299
    }
300
 
301
 
302
 
303
}
304
 
305
 
306
 
307
 
143 pingvin 308
bool MySql::createListModelsTable(){ //          ( ListOfModels)
309
 
310
    SqlTable* tbl;
311
    TableField* fld;
312
    if (!db.isOpen()){
313
        MySql::mysqlLastError = tr("Database is not open!");
314
        return false;
315
    }
316
    tbl = new SqlTable(tr("ListOfModels"));        //     ListOfModels    
317
    fld = new TableField(tr("ModelName"), tbl);    //        ,   ID      (   )
318
    //fld->setNotNull(true);                          //     
319
    fld->setType(tr("CHAR(30)"));                   //   -   30 
320
    fld->setDefaultValue(tr("New model"));          //    
321
    tbl->append(fld);                               //    
322
 
323
    fld = new TableField(tr("ModelString"), tbl);    //         
324
    //fld->setNotNull(true);                          //     
325
    fld->setType(tr("TEXT"));                   //   - 
326
    //fld->setDefaultValue(tr("New class alias"));    //    
327
    tbl->append(fld);                               //    
328
 
329
    fld = new TableField(tr("Enable"), tbl);    //    
330
    fld->setNotNull(true);                          //     
331
    fld->setType(tr("BOOL"));                   //   - 
332
    fld->setDefaultValue(tr("1"));    //    
333
    tbl->append(fld);                               //    
334
 
335
    fld = new TableField(tr("Comment"), tbl);    //        
336
    fld->setNotNull(true);                          //     
337
    fld->setType(tr("CHAR(30)"));                   //   -   30 
338
    fld->setDefaultValue(tr("without comments"));    //    
339
    tbl->append(fld);                               //    
340
 
341
 
342
    if(!MySql::createTable(tbl)){                   //     
343
 
344
   //     delete fld;
345
        delete tbl;                                 //   
346
        return false;                               //  
347
    }
348
 
349
 
350
    else {                                          //   
351
 //       delete fld;
352
        delete tbl;                                 //   
353
        return true;                                //   
354
 
355
    }
356
 
357
 
358
}
359
 
56 pingvin 360
bool MySql::createDescriptionOfClassesTable(){ //           ( DescriptionOfClasses)
361
    SqlTable* tbl;
362
    TableField* fld;
363
    if (!db.isOpen()){
364
        MySql::mysqlLastError = tr("Database is not open!");
365
        return false;
366
    }
367
    tbl = new SqlTable(tr("DescriptionOfClasses")); //     DescriptionOfClassess     
368
    fld = new TableField(tr("FieldName"), tbl);     //        ,   ID      (   )
369
    fld->setNotNull(true);                          //     
370
    fld->setType(tr("CHAR(30)"));                   //   -   30 
371
    fld->setDefaultValue(tr("New field"));          //    
372
    tbl->append(fld);                               //    
373
 
374
    fld = new TableField(tr("FieldAlias"), tbl);    //         
375
    fld->setNotNull(true);                          //     
376
    fld->setType(tr("CHAR(30)"));                   //   -   30 
62 pingvin 377
    fld->setDefaultValue(tr("New field alias"));    //    
56 pingvin 378
    tbl->append(fld);                               //    
379
 
380
    fld = new TableField(tr("FieldType"), tbl);     //        
381
    fld->setNotNull(true);                          //     
382
    fld->setType(tr("CHAR(30)"));                   //   -   30 
383
    fld->setDefaultValue(tr("CHAR(30)"));           //    
384
    tbl->append(fld);                               //    
385
 
59 pingvin 386
    fld = new TableField(tr("DefaultValue"), tbl);  //        
387
    fld->setNotNull(false);                         //     
388
    fld->setType(tr("CHAR(30)"));                   //   -   30 
389
    fld->setDefaultValue(tr("NULL"));               //    
390
    tbl->append(fld);                               //    
391
 
56 pingvin 392
    fld = new TableField(tr("ClassIdentifer"), tbl);    //        
393
    fld->setNotNull(false);                          //     
394
    fld->setType(tr("INT(10)"));                   //   -  
395
    fld->setDefaultValue(tr("NULL"));    //    
396
    tbl->append(fld);                               //    
397
 
398
 
399
 
400
    fld = new TableField(tr("Comment"), tbl);    //        
401
    fld->setNotNull(true);                          //     
402
    fld->setType(tr("CHAR(30)"));                   //   -   30 
403
    fld->setDefaultValue(tr("without comments"));    //    
404
    tbl->append(fld);                               //    
405
 
406
 
407
    if(!MySql::createTable(tbl)){                   //     
408
 
409
   //     delete fld;
410
        delete tbl;                                 //   
411
        return false;                               //  
412
    }
413
 
414
 
415
    else {                                          //   
416
 //       delete fld;
417
        delete tbl;                                 //   
418
        return true;                                //   
419
 
420
    }
421
 
422
 
423
}
73 pingvin 424
 
425
 
426
QSqlError MySql::dbLastError(){ //      
427
    QString error;
428
    error = db.lastError().text();
429
 
430
    return db.lastError();
431
}
135 pingvin 432
 
433
 
434
void MySql::close(){ //    
435
    db.close();
436
 
437
}