44,12 → 44,11 |
*/ |
|
QModelIndex newindex; |
QSqlRecord rec = record(index.row()); |
|
rec.setValue(index.column(), value); |
rec.setGenerated(index.column(), true); |
|
|
|
|
if (index.column()==1){ // åñëè ïîìåíÿëîñü èìÿ ïîëÿ |
QSqlQuery qu; |
QString old_field_name; // ñòàðîå èìÿ ïîëÿ |
122,9 → 121,47 |
bool ok; |
ok = qu.exec(); |
if (!ok) return false; |
else setData(ModelForDescriptionTable::index(index.row(), 4), QVariant(tr("NULL")), Qt::EditRole); // ñáðîñèì çíà÷åíèå ïî óìîë÷àíèþ |
} |
|
if (index.column()==4){ // åñëè ïîìåíÿëîñü çíà÷åíèå ïî óìîë÷àíèþ |
///ALTER TABLE `an_db`.`2_Inctance` MODIFY COLUMN `Îò÷åñòâî` CHAR(10) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT 'Èâàíîâè÷'; |
QSqlQuery qu; |
QString field_type, new_default_value, field_name, query_str; |
|
field_type = data(ModelForDescriptionTable::index(index.row(), 3)).toString(); // òèï ïîëÿ õðàíèòüñÿ â 3 ñòîëáöå, ñ÷èòûâàåì åãî çíà÷åíèå |
field_name = data(ModelForDescriptionTable::index(index.row(), 1)).toString(); // èìÿ ïîëÿ õðàíèòüñÿ â 1 ñòîëáöå, ñ÷èòûâàåì åãî çíà÷åíèå |
new_default_value = value.toString(); |
query_str = tr("ALTER TABLE "); |
query_str.append(ModelForDescriptionTable::Inctance); |
query_str.append(tr(" MODIFY COLUMN `")); |
query_str.append(field_name); |
query_str.append(tr("` ")); |
query_str.append(field_type); |
|
if (new_default_value != tr("NULL")) { |
query_str.append(tr(" DEFAULT '")); |
|
|
query_str.append(new_default_value); |
query_str.append(tr("'")); } |
else { |
query_str.append(tr(" DEFAULT ")); // Åñëè íàäî çàäàòü çíà÷åíèå NULL òî àïîñòðîôû íå ñòàâèì |
query_str.append(new_default_value); |
} |
qu.prepare(query_str); |
bool ok; |
ok = qu.exec(); |
if (!ok) return false; |
|
} |
|
|
QSqlRecord rec = record(index.row()); |
rec.setValue(index.column(), value); |
rec.setGenerated(index.column(), true); |
|
|
lResult = QSqlTableModel::setData(index, value, role); |
if (lResult) { |
lResult = updateRowInTable(index.row(), rec); |