Редакция 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 | } |