42,8 → 42,7 |
str_tmp.append(tr("_instance")); |
} |
*/ |
lResult = QSqlTableModel::setData(index, value, role); |
if (lResult) { |
|
QModelIndex newindex; |
QSqlRecord rec = record(index.row()); |
|
106,12 → 105,38 |
} |
*/ |
|
if (index.column()==3){ // åñëè ïîìåíÿëñÿ òèï äàííûõ |
///ALTER TABLE `an_db`.`1_Inctance` MODIFY COLUMN `int` INTEGER; |
QSqlQuery qu; |
QString old_type, new_type, field_name, query_str; |
old_type = old_value.toString(); // îïðåäåëèì òåêóùèé (êîòîðîå íóæíî ïîìåíÿòü) òèï ïîëÿ |
new_type = value.toString(); // íîâûé òèï ïîëÿ |
field_name = data(ModelForDescriptionTable::index(index.row(), 1)).toString(); // èìÿ ïîëÿ õðàíèòüñÿ â 1 ñòîëáöå, ñ÷èòûâàåì åãî çíà÷åíèå |
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(new_type); |
qu.prepare(query_str); |
bool ok; |
ok = qu.exec(); |
if (!ok) return false; |
|
} |
|
lResult = QSqlTableModel::setData(index, value, role); |
if (lResult) { |
lResult = updateRowInTable(index.row(), rec); |
emit field_name_changed(); |
emit field_changed(); |
/// QSqlTableModel::setData(newindex, QVariant(str_tmp), Qt::EditRole); |
|
|
} |
|
|
|
|
return lResult; |
} |
|