Хранилища Subversion OpenInventory

Редакция

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

Редакция Автор № строки Строка
33 pingvin 1
#include "sqltable.h"
2
 
38 pingvin 3
SqlTable::SqlTable(QString tname, QObject *parent) :
37 pingvin 4
   QObject(parent)
33 pingvin 5
{
38 pingvin 6
 
37 pingvin 7
    tableName = tname;
38 pingvin 8
    field_tmp = new TableField("ID", this); //      "ID" ()
9
    field_tmp->setType(tr("INT(10)"));
39 pingvin 10
    field_tmp->setAutoIncrement(true);
38 pingvin 11
    tableFields.append(field_tmp); //    ()   () 
39 pingvin 12
    tablePrimaryKey = field_tmp->name(); //      
13
    tablePrimaryKeyIndex = 0;
14
    tableEngine = tr("MyISAM");
15
    tableCharacterSet = tr("cp1251");
70 pingvin 16
    SqlTable::createSqlString();
37 pingvin 17
    //delete field_tmp;
33 pingvin 18
}
37 pingvin 19
 
38 pingvin 20
/***************************************************************************************
21
**    ,       tname
22
**
23
**
24
***************************************************************************************/
37 pingvin 25
 
38 pingvin 26
 
37 pingvin 27
void SqlTable::setName(QString tname){
28
    SqlTable::tableName = tname;
39 pingvin 29
    SqlTable::createSqlString();
37 pingvin 30
}
31
 
38 pingvin 32
/***************************************************************************************
33
**    
34
**
35
**
36
***************************************************************************************/
37
 
38
 
39
QString SqlTable::name(){
40
 
41
    return SqlTable::tableName;
42
}
43
 
44
 
45
/***************************************************************************************
46
**       
47
**
48
**
49
***************************************************************************************/
50
 
51
QList<TableField*> SqlTable::fields(){
52
 
53
    return SqlTable::tableFields;
54
}
39 pingvin 55
 
56
 
57
/***************************************************************************************
58
**     ,
59
**       fieldName
60
**  true,    
61
**  -  false         lastError
62
**
63
**
64
***************************************************************************************/
65
 
66
 
67
 
68
bool SqlTable::setPrimaryKey(QString fieldName){
69
 
70
    if (tableFields.isEmpty()) {                                            //    
71
        SqlTable::tableLastError = tr("Table does not contain fields!");    //  
72
        return false;
73
    }
74
    for (int i = 0; i < tableFields.size(); ++i){
75
        if (tableFields.at(i)->name() == fieldName){                        //     
76
            SqlTable::tablePrimaryKeyIndex = i;                                  //      
77
            SqlTable::tablePrimaryKey = tableFields.at(i)->name();          //     ,    
78
            SqlTable::createSqlString();                                    //  sql- 
79
            return true;
80
        }
81
    }
82
    SqlTable::tableLastError = tr("In the table there is no field with that name!");  //      ,
83
    return false;                                                                     //  
84
}
85
 
86
 
87
/***************************************************************************************
88
**      ,
89
**      
90
**
91
***************************************************************************************/
92
 
93
QString SqlTable::lastError(){
94
return SqlTable::tableLastError;
95
}
96
 
97
 
98
 
99
/***************************************************************************************
100
**    ,
101
**    
102
**
103
***************************************************************************************/
104
 
105
QString SqlTable::primaryKey(){
106
    return SqlTable::tablePrimaryKey;
107
}
108
 
109
/***************************************************************************************
110
**    Sql-,
111
**      e 
112
**
113
***************************************************************************************/
114
 
115
bool SqlTable::createSqlString(){
116
    QString sql_str;
117
    int i = 0;
118
    if (tableFields.isEmpty()) {                                            //    
119
        SqlTable::tableLastError = tr("Table does not contain fields!");    //  
120
        return false;
121
    }
122
    sql_str = tr("CREATE TABLE `");
123
    sql_str.append( SqlTable::tableName);
124
    sql_str.append(tr("` ( "));
125
 
126
    for (i; i < (tableFields.size()-1); ++i){  //   ,  
127
    sql_str.append(tableFields.at(i)->sqlString());
128
    sql_str.append(tr(", "));
129
    }
130
    sql_str.append(tableFields.at(i)->sqlString()); //  
131
    sql_str.append(tr(" "));                        //       
132
 
133
    if (SqlTable::tablePrimaryKey != tr("")) {      //    ,
134
        sql_str.append(tr(", "));                   //   
135
        sql_str.append(tr("PRIMARY KEY  (`"));
136
        sql_str.append(SqlTable::tablePrimaryKey);
137
        sql_str.append(tr("`) ) "));
138
    }
139
    else  sql_str.append(tr(" ) "));
140
    if (SqlTable::tableEngine != tr("")) {
141
        sql_str.append(tr("ENGINE="));
142
        sql_str.append(SqlTable::tableEngine);
143
        sql_str.append(tr(" "));
144
    }
145
    if (SqlTable::tableCharacterSet != tr("")){
146
        sql_str.append(tr("DEFAULT CHARSET="));
147
        sql_str.append(SqlTable::tableCharacterSet);
148
 
149
    }
150
     SqlTable::SqlString = sql_str;
151
    return true;
152
 
153
}
154
 
155
/***************************************************************************************
156
**    Sql-,       
157
**
158
**
159
***************************************************************************************/
160
 
161
 
162
QString  SqlTable::sqlString(){
163
    return  SqlTable::SqlString;
164
 
165
}
166
 
167
 
168
void SqlTable::append(TableField* newfield){ //     ()    ,     newfield ()
169
      SqlTable::tableFields.append(newfield);
170
      SqlTable::createSqlString();
171
}