Хранилища Subversion OpenInventory

Редакция

Редакция 44 | Редакция 56 | К новейшей редакции | Содержимое файла | Сравнить с предыдущей | Последнее изменение | Открыть журнал | 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
 
145
 
146
}