Хранилища Subversion OpenInventory

Редакция

Редакция 73 | Редакция 135 | К новейшей редакции | Содержимое файла | Сравнить с предыдущей | Последнее изменение | Открыть журнал | 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
    }
106
    tbl = new SqlTable(tr("ListOfClasses"));        //     ListOfClasses    
107
    fld = new TableField(tr("ClassName"), tbl);          //        ,   ID      (   )
108
    fld->setNotNull(true);                          //     
109
    fld->setType(tr("CHAR(30)"));                   //   -   30 
110
    fld->setDefaultValue(tr("New class"));          //    
111
    tbl->append(fld);                               //    
112
 
113
    fld = new TableField(tr("ClassAlias"), tbl);    //        
114
    fld->setNotNull(true);                          //     
115
    fld->setType(tr("CHAR(30)"));                   //   -   30 
116
    fld->setDefaultValue(tr("New class alias"));    //    
117
    tbl->append(fld);                               //    
118
 
119
    fld = new TableField(tr("TableWhithInstance"), tbl);    //        
120
    fld->setNotNull(true);                          //     
121
    fld->setType(tr("CHAR(30)"));                   //   -   30 
122
    fld->setDefaultValue(tr("New class instance"));    //    
123
    tbl->append(fld);                               //    
124
 
125
    fld = new TableField(tr("Comment"), tbl);    //        
126
    fld->setNotNull(true);                          //     
127
    fld->setType(tr("CHAR(30)"));                   //   -   30 
128
    fld->setDefaultValue(tr("without comments"));    //    
129
    tbl->append(fld);                               //    
130
 
131
 
132
    if(!MySql::createTable(tbl)){                   //     
133
 
134
   //     delete fld;
135
        delete tbl;                                 //   
136
        return false;                               //  
137
    }
138
 
139
 
140
    else {                                          //   
141
 //       delete fld;
142
        delete tbl;                                 //   
143
        return true;                                //   
144
 
145
    }
146
 
56 pingvin 147
    tbl = new SqlTable(tr("DescriptionOfClasses")); //     DescriptionOfClassess     
148
    fld = new TableField(tr("FieldName"), tbl);     //        ,   ID      (   )
149
    fld->setNotNull(true);                          //     
150
    fld->setType(tr("CHAR(30)"));                   //   -   30 
151
    fld->setDefaultValue(tr("New field"));          //    
152
    tbl->append(fld);                               //    
45 pingvin 153
 
56 pingvin 154
    fld = new TableField(tr("FieldAlias"), tbl);    //         
155
    fld->setNotNull(true);                          //     
156
    fld->setType(tr("CHAR(30)"));                   //   -   30 
157
    fld->setDefaultValue(tr("New class alias"));    //    
158
    tbl->append(fld);                               //    
159
 
160
    fld = new TableField(tr("FieldType"), tbl);     //        
161
    fld->setNotNull(true);                          //     
162
    fld->setType(tr("CHAR(30)"));                   //   -   30 
163
    fld->setDefaultValue(tr("CHAR(30)"));           //    
164
    tbl->append(fld);                               //    
165
 
166
    fld = new TableField(tr("ClassIdentifer"), tbl);    //        
167
    fld->setNotNull(false);                          //     
168
    fld->setType(tr("INT(10)"));                   //   -  
169
    fld->setDefaultValue(tr("NULL"));    //    
170
    tbl->append(fld);                               //    
171
 
172
 
173
 
174
    fld = new TableField(tr("Comment"), tbl);    //        
175
    fld->setNotNull(true);                          //     
176
    fld->setType(tr("CHAR(30)"));                   //   -   30 
177
    fld->setDefaultValue(tr("without comments"));    //    
178
    tbl->append(fld);                               //    
179
 
180
 
181
    if(!MySql::createTable(tbl)){                   //     
182
 
183
   //     delete fld;
184
        delete tbl;                                 //   
185
        return false;                               //  
186
    }
187
 
188
 
189
    else {                                          //   
190
 //       delete fld;
191
        delete tbl;                                 //   
192
        return true;                                //   
193
 
194
    }
195
 
196
 
197
 
198
 
199
 
45 pingvin 200
}
56 pingvin 201
 
202
 
203
 
204
 
205
bool MySql::createListOfClassesTable(){
206
 
207
    SqlTable* tbl;
208
    TableField* fld;
209
    if (!db.isOpen()){
210
        MySql::mysqlLastError = tr("Database is not open!");
211
        return false;
212
    }
213
    tbl = new SqlTable(tr("ListOfClasses"));        //     ListOfClasses    
214
    fld = new TableField(tr("ClassName"), tbl);          //        ,   ID      (   )
215
    fld->setNotNull(true);                          //     
216
    fld->setType(tr("CHAR(30)"));                   //   -   30 
217
    fld->setDefaultValue(tr("New class"));          //    
218
    tbl->append(fld);                               //    
219
 
220
    fld = new TableField(tr("ClassAlias"), tbl);    //        
221
    fld->setNotNull(true);                          //     
222
    fld->setType(tr("CHAR(30)"));                   //   -   30 
223
    fld->setDefaultValue(tr("New class alias"));    //    
224
    tbl->append(fld);                               //    
225
 
226
    fld = new TableField(tr("TableWhithInstance"), tbl);    //        
227
    fld->setNotNull(true);                          //     
228
    fld->setType(tr("CHAR(30)"));                   //   -   30 
229
    fld->setDefaultValue(tr("New class instance"));    //    
230
    tbl->append(fld);                               //    
231
 
232
    fld = new TableField(tr("Comment"), tbl);    //        
233
    fld->setNotNull(true);                          //     
234
    fld->setType(tr("CHAR(30)"));                   //   -   30 
235
    fld->setDefaultValue(tr("without comments"));    //    
236
    tbl->append(fld);                               //    
237
 
238
 
239
    if(!MySql::createTable(tbl)){                   //     
240
 
241
   //     delete fld;
242
        delete tbl;                                 //   
243
        return false;                               //  
244
    }
245
 
246
 
247
    else {                                          //   
248
 //       delete fld;
249
        delete tbl;                                 //   
250
        return true;                                //   
251
 
252
    }
253
 
254
 
255
 
256
}
257
 
258
 
259
 
260
 
261
bool MySql::createDescriptionOfClassesTable(){ //           ( DescriptionOfClasses)
262
    SqlTable* tbl;
263
    TableField* fld;
264
    if (!db.isOpen()){
265
        MySql::mysqlLastError = tr("Database is not open!");
266
        return false;
267
    }
268
    tbl = new SqlTable(tr("DescriptionOfClasses")); //     DescriptionOfClassess     
269
    fld = new TableField(tr("FieldName"), tbl);     //        ,   ID      (   )
270
    fld->setNotNull(true);                          //     
271
    fld->setType(tr("CHAR(30)"));                   //   -   30 
272
    fld->setDefaultValue(tr("New field"));          //    
273
    tbl->append(fld);                               //    
274
 
275
    fld = new TableField(tr("FieldAlias"), tbl);    //         
276
    fld->setNotNull(true);                          //     
277
    fld->setType(tr("CHAR(30)"));                   //   -   30 
62 pingvin 278
    fld->setDefaultValue(tr("New field alias"));    //    
56 pingvin 279
    tbl->append(fld);                               //    
280
 
281
    fld = new TableField(tr("FieldType"), tbl);     //        
282
    fld->setNotNull(true);                          //     
283
    fld->setType(tr("CHAR(30)"));                   //   -   30 
284
    fld->setDefaultValue(tr("CHAR(30)"));           //    
285
    tbl->append(fld);                               //    
286
 
59 pingvin 287
    fld = new TableField(tr("DefaultValue"), tbl);  //        
288
    fld->setNotNull(false);                         //     
289
    fld->setType(tr("CHAR(30)"));                   //   -   30 
290
    fld->setDefaultValue(tr("NULL"));               //    
291
    tbl->append(fld);                               //    
292
 
56 pingvin 293
    fld = new TableField(tr("ClassIdentifer"), tbl);    //        
294
    fld->setNotNull(false);                          //     
295
    fld->setType(tr("INT(10)"));                   //   -  
296
    fld->setDefaultValue(tr("NULL"));    //    
297
    tbl->append(fld);                               //    
298
 
299
 
300
 
301
    fld = new TableField(tr("Comment"), tbl);    //        
302
    fld->setNotNull(true);                          //     
303
    fld->setType(tr("CHAR(30)"));                   //   -   30 
304
    fld->setDefaultValue(tr("without comments"));    //    
305
    tbl->append(fld);                               //    
306
 
307
 
308
    if(!MySql::createTable(tbl)){                   //     
309
 
310
   //     delete fld;
311
        delete tbl;                                 //   
312
        return false;                               //  
313
    }
314
 
315
 
316
    else {                                          //   
317
 //       delete fld;
318
        delete tbl;                                 //   
319
        return true;                                //   
320
 
321
    }
322
 
323
 
324
}
73 pingvin 325
 
326
 
327
QSqlError MySql::dbLastError(){ //      
328
    QString error;
329
    error = db.lastError().text();
330
 
331
    return db.lastError();
332
}