Хранилища Subversion OpenInventory

Редакция

Редакция 135 | Редакция 143 | К новейшей редакции | Содержимое файла | Сравнить с предыдущей | Последнее изменение | Открыть журнал | 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
 
265
    fld = new TableField(tr("TableWhithInstance"), tbl);    //        
266
    fld->setNotNull(true);                          //     
267
    fld->setType(tr("CHAR(30)"));                   //   -   30 
268
    fld->setDefaultValue(tr("New class instance"));    //    
269
    tbl->append(fld);                               //    
270
 
271
    fld = new TableField(tr("Comment"), tbl);    //        
272
    fld->setNotNull(true);                          //     
273
    fld->setType(tr("CHAR(30)"));                   //   -   30 
274
    fld->setDefaultValue(tr("without comments"));    //    
275
    tbl->append(fld);                               //    
276
 
277
 
278
    if(!MySql::createTable(tbl)){                   //     
279
 
280
   //     delete fld;
281
        delete tbl;                                 //   
282
        return false;                               //  
283
    }
284
 
285
 
286
    else {                                          //   
287
 //       delete fld;
288
        delete tbl;                                 //   
289
        return true;                                //   
290
 
291
    }
292
 
293
 
294
 
295
}
296
 
297
 
298
 
299
 
300
bool MySql::createDescriptionOfClassesTable(){ //           ( DescriptionOfClasses)
301
    SqlTable* tbl;
302
    TableField* fld;
303
    if (!db.isOpen()){
304
        MySql::mysqlLastError = tr("Database is not open!");
305
        return false;
306
    }
307
    tbl = new SqlTable(tr("DescriptionOfClasses")); //     DescriptionOfClassess     
308
    fld = new TableField(tr("FieldName"), tbl);     //        ,   ID      (   )
309
    fld->setNotNull(true);                          //     
310
    fld->setType(tr("CHAR(30)"));                   //   -   30 
311
    fld->setDefaultValue(tr("New field"));          //    
312
    tbl->append(fld);                               //    
313
 
314
    fld = new TableField(tr("FieldAlias"), tbl);    //         
315
    fld->setNotNull(true);                          //     
316
    fld->setType(tr("CHAR(30)"));                   //   -   30 
62 pingvin 317
    fld->setDefaultValue(tr("New field alias"));    //    
56 pingvin 318
    tbl->append(fld);                               //    
319
 
320
    fld = new TableField(tr("FieldType"), tbl);     //        
321
    fld->setNotNull(true);                          //     
322
    fld->setType(tr("CHAR(30)"));                   //   -   30 
323
    fld->setDefaultValue(tr("CHAR(30)"));           //    
324
    tbl->append(fld);                               //    
325
 
59 pingvin 326
    fld = new TableField(tr("DefaultValue"), tbl);  //        
327
    fld->setNotNull(false);                         //     
328
    fld->setType(tr("CHAR(30)"));                   //   -   30 
329
    fld->setDefaultValue(tr("NULL"));               //    
330
    tbl->append(fld);                               //    
331
 
56 pingvin 332
    fld = new TableField(tr("ClassIdentifer"), tbl);    //        
333
    fld->setNotNull(false);                          //     
334
    fld->setType(tr("INT(10)"));                   //   -  
335
    fld->setDefaultValue(tr("NULL"));    //    
336
    tbl->append(fld);                               //    
337
 
338
 
339
 
340
    fld = new TableField(tr("Comment"), tbl);    //        
341
    fld->setNotNull(true);                          //     
342
    fld->setType(tr("CHAR(30)"));                   //   -   30 
343
    fld->setDefaultValue(tr("without comments"));    //    
344
    tbl->append(fld);                               //    
345
 
346
 
347
    if(!MySql::createTable(tbl)){                   //     
348
 
349
   //     delete fld;
350
        delete tbl;                                 //   
351
        return false;                               //  
352
    }
353
 
354
 
355
    else {                                          //   
356
 //       delete fld;
357
        delete tbl;                                 //   
358
        return true;                                //   
359
 
360
    }
361
 
362
 
363
}
73 pingvin 364
 
365
 
366
QSqlError MySql::dbLastError(){ //      
367
    QString error;
368
    error = db.lastError().text();
369
 
370
    return db.lastError();
371
}
135 pingvin 372
 
373
 
374
void MySql::close(){ //    
375
    db.close();
376
 
377
}