Хранилища Subversion OpenInventory

Редакция

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

Редакция Автор № строки Строка
28 pingvin 1
#include "mysql.h"
2
 
3
MySql::MySql(QObject *parent) :
4
    QObject(parent)
5
{
6
}
7
 
8
 
9
 
10
/************************************************
11
**      
12
**
13
************************************************/
14
 
15
 
16
 
17
void MySql::setDatabaseName(QString name){
41 pingvin 18
    MySql::sqlDatabaseName = name;
28 pingvin 19
}
41 pingvin 20
 
21
 
44 pingvin 22
bool MySql::connect(){
41 pingvin 23
    db = QSqlDatabase::addDatabase("QMYSQL");
24
 
25
    db.setHostName(MySql::sqlHostName);
26
    db.setDatabaseName(MySql::sqlDatabaseName);
27
    db.setUserName(MySql::sqlUserName);
28
    db.setPassword(MySql::sqlPassword);
29
    bool ok = db.open();
30
    if (ok) return true;
44 pingvin 31
    else {
32
          MySql::mysqlLastError = db.lastError().text();
41 pingvin 33
        return false; }
34
 
35
    /*
36
    pdb->setHostName(hostName);
37
    pdb->setDatabaseName(baseName);
38
    pdb->setUserName(userName);
39
    pdb->setPassword(password);
40
    bool ok = pdb->open();
41
 
42
if (!ok) {
43
                            QMessageBox::critical( //     .
44
                                                                            QWidget(this->parent()),                      //  .
45
                                                                            QObject::tr("Database Error"),   // .
46
                                                                            db.lastError().text());          //  .
47
                     }
48
  */
49
 
50
    return true;
51
}
52
 
53
 
54
void MySql::setUserName(QString uname){
55
    MySql::sqlUserName = uname;
56
}
57
 
58
void MySql::setPassword(QString passwrd){
59
    MySql::sqlPassword = passwrd;
60
}
61
 
62
 
63
void MySql::setHostName(QString hname){
64
    MySql::sqlHostName = hname;
65
}
42 pingvin 66
 
44 pingvin 67
bool  MySql::createTable(SqlTable* table){ //     
42 pingvin 68
QSqlQuery q;
69
bool ok;
70
ok = q.prepare(table->sqlString());
71
if(!ok) {
44 pingvin 72
    MySql::mysqlLastError = q.lastError().text();
42 pingvin 73
    return false;}
74
ok = q.exec();
75
if(!ok) {
44 pingvin 76
    MySql::mysqlLastError = q.lastError().text();
42 pingvin 77
    return false;}
78
else return true;
79
}
44 pingvin 80
 
81
 
82
 
83
QString MySql::lasError(){
84
 
85
    return MySql::mysqlLastError;
86
}
87
 
88
 
45 pingvin 89
 
90
/************************************************
91
**       
92
**      
93
** ( ListOfClasses   DescriptionOfClasses)
94
************************************************/
95
 
96
 
97
bool MySql::createDataBase(){
98
    SqlTable* tbl;
99
    TableField* fld;
100
    if (!db.isOpen()){
101
        MySql::mysqlLastError = tr("Database is not open!");
102
        return false;
103
    }
104
    tbl = new SqlTable(tr("ListOfClasses"));        //     ListOfClasses    
105
    fld = new TableField(tr("ClassName"), tbl);          //        ,   ID      (   )
106
    fld->setNotNull(true);                          //     
107
    fld->setType(tr("CHAR(30)"));                   //   -   30 
108
    fld->setDefaultValue(tr("New class"));          //    
109
    tbl->append(fld);                               //    
110
 
111
    fld = new TableField(tr("ClassAlias"), tbl);    //        
112
    fld->setNotNull(true);                          //     
113
    fld->setType(tr("CHAR(30)"));                   //   -   30 
114
    fld->setDefaultValue(tr("New class alias"));    //    
115
    tbl->append(fld);                               //    
116
 
117
    fld = new TableField(tr("TableWhithInstance"), tbl);    //        
118
    fld->setNotNull(true);                          //     
119
    fld->setType(tr("CHAR(30)"));                   //   -   30 
120
    fld->setDefaultValue(tr("New class instance"));    //    
121
    tbl->append(fld);                               //    
122
 
123
    fld = new TableField(tr("Comment"), tbl);    //        
124
    fld->setNotNull(true);                          //     
125
    fld->setType(tr("CHAR(30)"));                   //   -   30 
126
    fld->setDefaultValue(tr("without comments"));    //    
127
    tbl->append(fld);                               //    
128
 
129
 
130
    if(!MySql::createTable(tbl)){                   //     
131
 
132
   //     delete fld;
133
        delete tbl;                                 //   
134
        return false;                               //  
135
    }
136
 
137
 
138
    else {                                          //   
139
 //       delete fld;
140
        delete tbl;                                 //   
141
        return true;                                //   
142
 
143
    }
144
 
56 pingvin 145
    tbl = new SqlTable(tr("DescriptionOfClasses")); //     DescriptionOfClassess     
146
    fld = new TableField(tr("FieldName"), tbl);     //        ,   ID      (   )
147
    fld->setNotNull(true);                          //     
148
    fld->setType(tr("CHAR(30)"));                   //   -   30 
149
    fld->setDefaultValue(tr("New field"));          //    
150
    tbl->append(fld);                               //    
45 pingvin 151
 
56 pingvin 152
    fld = new TableField(tr("FieldAlias"), 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("FieldType"), tbl);     //        
159
    fld->setNotNull(true);                          //     
160
    fld->setType(tr("CHAR(30)"));                   //   -   30 
161
    fld->setDefaultValue(tr("CHAR(30)"));           //    
162
    tbl->append(fld);                               //    
163
 
164
    fld = new TableField(tr("ClassIdentifer"), tbl);    //        
165
    fld->setNotNull(false);                          //     
166
    fld->setType(tr("INT(10)"));                   //   -  
167
    fld->setDefaultValue(tr("NULL"));    //    
168
    tbl->append(fld);                               //    
169
 
170
 
171
 
172
    fld = new TableField(tr("Comment"), tbl);    //        
173
    fld->setNotNull(true);                          //     
174
    fld->setType(tr("CHAR(30)"));                   //   -   30 
175
    fld->setDefaultValue(tr("without comments"));    //    
176
    tbl->append(fld);                               //    
177
 
178
 
179
    if(!MySql::createTable(tbl)){                   //     
180
 
181
   //     delete fld;
182
        delete tbl;                                 //   
183
        return false;                               //  
184
    }
185
 
186
 
187
    else {                                          //   
188
 //       delete fld;
189
        delete tbl;                                 //   
190
        return true;                                //   
191
 
192
    }
193
 
194
 
195
 
196
 
197
 
45 pingvin 198
}
56 pingvin 199
 
200
 
201
 
202
 
203
bool MySql::createListOfClassesTable(){
204
 
205
    SqlTable* tbl;
206
    TableField* fld;
207
    if (!db.isOpen()){
208
        MySql::mysqlLastError = tr("Database is not open!");
209
        return false;
210
    }
211
    tbl = new SqlTable(tr("ListOfClasses"));        //     ListOfClasses    
212
    fld = new TableField(tr("ClassName"), tbl);          //        ,   ID      (   )
213
    fld->setNotNull(true);                          //     
214
    fld->setType(tr("CHAR(30)"));                   //   -   30 
215
    fld->setDefaultValue(tr("New class"));          //    
216
    tbl->append(fld);                               //    
217
 
218
    fld = new TableField(tr("ClassAlias"), tbl);    //        
219
    fld->setNotNull(true);                          //     
220
    fld->setType(tr("CHAR(30)"));                   //   -   30 
221
    fld->setDefaultValue(tr("New class alias"));    //    
222
    tbl->append(fld);                               //    
223
 
224
    fld = new TableField(tr("TableWhithInstance"), tbl);    //        
225
    fld->setNotNull(true);                          //     
226
    fld->setType(tr("CHAR(30)"));                   //   -   30 
227
    fld->setDefaultValue(tr("New class instance"));    //    
228
    tbl->append(fld);                               //    
229
 
230
    fld = new TableField(tr("Comment"), tbl);    //        
231
    fld->setNotNull(true);                          //     
232
    fld->setType(tr("CHAR(30)"));                   //   -   30 
233
    fld->setDefaultValue(tr("without comments"));    //    
234
    tbl->append(fld);                               //    
235
 
236
 
237
    if(!MySql::createTable(tbl)){                   //     
238
 
239
   //     delete fld;
240
        delete tbl;                                 //   
241
        return false;                               //  
242
    }
243
 
244
 
245
    else {                                          //   
246
 //       delete fld;
247
        delete tbl;                                 //   
248
        return true;                                //   
249
 
250
    }
251
 
252
 
253
 
254
}
255
 
256
 
257
 
258
 
259
bool MySql::createDescriptionOfClassesTable(){ //           ( DescriptionOfClasses)
260
    SqlTable* tbl;
261
    TableField* fld;
262
    if (!db.isOpen()){
263
        MySql::mysqlLastError = tr("Database is not open!");
264
        return false;
265
    }
266
    tbl = new SqlTable(tr("DescriptionOfClasses")); //     DescriptionOfClassess     
267
    fld = new TableField(tr("FieldName"), tbl);     //        ,   ID      (   )
268
    fld->setNotNull(true);                          //     
269
    fld->setType(tr("CHAR(30)"));                   //   -   30 
270
    fld->setDefaultValue(tr("New field"));          //    
271
    tbl->append(fld);                               //    
272
 
273
    fld = new TableField(tr("FieldAlias"), tbl);    //         
274
    fld->setNotNull(true);                          //     
275
    fld->setType(tr("CHAR(30)"));                   //   -   30 
276
    fld->setDefaultValue(tr("New class alias"));    //    
277
    tbl->append(fld);                               //    
278
 
279
    fld = new TableField(tr("FieldType"), tbl);     //        
280
    fld->setNotNull(true);                          //     
281
    fld->setType(tr("CHAR(30)"));                   //   -   30 
282
    fld->setDefaultValue(tr("CHAR(30)"));           //    
283
    tbl->append(fld);                               //    
284
 
285
    fld = new TableField(tr("ClassIdentifer"), tbl);    //        
286
    fld->setNotNull(false);                          //     
287
    fld->setType(tr("INT(10)"));                   //   -  
288
    fld->setDefaultValue(tr("NULL"));    //    
289
    tbl->append(fld);                               //    
290
 
291
 
292
 
293
    fld = new TableField(tr("Comment"), tbl);    //        
294
    fld->setNotNull(true);                          //     
295
    fld->setType(tr("CHAR(30)"));                   //   -   30 
296
    fld->setDefaultValue(tr("without comments"));    //    
297
    tbl->append(fld);                               //    
298
 
299
 
300
    if(!MySql::createTable(tbl)){                   //     
301
 
302
   //     delete fld;
303
        delete tbl;                                 //   
304
        return false;                               //  
305
    }
306
 
307
 
308
    else {                                          //   
309
 //       delete fld;
310
        delete tbl;                                 //   
311
        return true;                                //   
312
 
313
    }
314
 
315
 
316
}