Редакция 77 | Редакция 79 | К новейшей редакции | Весь файл | Учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS
Редакция 77 | Редакция 78 | ||
---|---|---|---|
Строка 42... | Строка 42... | ||
42 | str_tmp.append(tr("_instance"));
|
42 | str_tmp.append(tr("_instance"));
|
43 | }
|
43 | }
|
44 | */
|
44 | */
|
45 | 45 | ||
46 | QModelIndex newindex;
|
46 | QModelIndex newindex;
|
47 | QSqlRecord rec = record(index.row()); |
- | |
48 | 47 | ||
49 | rec.setValue(index.column(), value); |
- | |
50 | rec.setGenerated(index.column(), true); |
- | |
- | 48 | ||
- | 49 | ||
51 | 50 | ||
52 | 51 | ||
53 | if (index.column()==1){ // åñëè ïîìåíÿëîñü èìÿ ïîëÿ |
52 | if (index.column()==1){ // åñëè ïîìåíÿëîñü èìÿ ïîëÿ |
54 | QSqlQuery qu;
|
53 | QSqlQuery qu;
|
55 | QString old_field_name; // ñòàðîå èìÿ ïîëÿ |
54 | QString old_field_name; // ñòàðîå èìÿ ïîëÿ |
Строка 120... | Строка 119... | ||
120 | query_str.append(new_type); |
119 | query_str.append(new_type); |
121 | qu.prepare(query_str); |
120 | qu.prepare(query_str); |
122 | bool ok; |
121 | bool ok; |
123 | ok = qu.exec(); |
122 | ok = qu.exec(); |
124 | if (!ok) return false; |
123 | if (!ok) return false; |
- | 124 | else setData(ModelForDescriptionTable::index(index.row(), 4), QVariant(tr("NULL")), Qt::EditRole); // ñáðîñèì çíà÷åíèå ïî óìîë÷àíèþ |
|
- | 125 | }
|
|
- | 126 | ||
- | 127 | if (index.column()==4){ // åñëè ïîìåíÿëîñü çíà÷åíèå ïî óìîë÷àíèþ |
|
- | 128 | ///ALTER TABLE `an_db`.`2_Inctance` MODIFY COLUMN `Îò÷åñòâî` CHAR(10) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT 'Èâàíîâè÷';
|
|
- | 129 | QSqlQuery qu;
|
|
- | 130 | QString field_type, new_default_value, field_name, query_str;
|
|
- | 131 | ||
- | 132 | field_type = data(ModelForDescriptionTable::index(index.row(), 3)).toString(); // òèï ïîëÿ õðàíèòüñÿ â 3 ñòîëáöå, ñ÷èòûâàåì åãî çíà÷åíèå |
|
- | 133 | field_name = data(ModelForDescriptionTable::index(index.row(), 1)).toString(); // èìÿ ïîëÿ õðàíèòüñÿ â 1 ñòîëáöå, ñ÷èòûâàåì åãî çíà÷åíèå |
|
- | 134 | new_default_value = value.toString(); |
|
- | 135 | query_str = tr("ALTER TABLE "); |
|
- | 136 | query_str.append(ModelForDescriptionTable::Inctance); |
|
- | 137 | query_str.append(tr(" MODIFY COLUMN `")); |
|
- | 138 | query_str.append(field_name); |
|
- | 139 | query_str.append(tr("` ")); |
|
- | 140 | query_str.append(field_type); |
|
- | 141 | ||
- | 142 | if (new_default_value != tr("NULL")) { |
|
- | 143 | query_str.append(tr(" DEFAULT '")); |
|
- | 144 | ||
- | 145 | ||
- | 146 | query_str.append(new_default_value); |
|
- | 147 | query_str.append(tr("'")); } |
|
- | 148 | else { |
|
- | 149 | query_str.append(tr(" DEFAULT ")); // Åñëè íàäî çàäàòü çíà÷åíèå NULL òî àïîñòðîôû íå ñòàâèì |
|
- | 150 | query_str.append(new_default_value); |
|
- | 151 | }
|
|
- | 152 | qu.prepare(query_str); |
|
- | 153 | bool ok; |
|
- | 154 | ok = qu.exec(); |
|
- | 155 | if (!ok) return false; |
|
125 | 156 | ||
126 | }
|
157 | }
|
127 | 158 | ||
- | 159 | ||
- | 160 | QSqlRecord rec = record(index.row()); |
|
- | 161 | rec.setValue(index.column(), value); |
|
- | 162 | rec.setGenerated(index.column(), true); |
|
- | 163 | ||
- | 164 | ||
128 | lResult = QSqlTableModel::setData(index, value, role); |
165 | lResult = QSqlTableModel::setData(index, value, role); |
129 | if (lResult) { |
166 | if (lResult) { |
130 | lResult = updateRowInTable(index.row(), rec); |
167 | lResult = updateRowInTable(index.row(), rec); |
131 | emit field_changed(); |
168 | emit field_changed(); |
132 | /// QSqlTableModel::setData(newindex, QVariant(str_tmp), Qt::EditRole);
|
169 | /// QSqlTableModel::setData(newindex, QVariant(str_tmp), Qt::EditRole);
|