Хранилища Subversion OpenInventory

Сравнить редакции

Не учитывать пробелы Редакция 76 → Редакция 77

/trunk/ClassEditor/modelfordescriptiontable.cpp
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;
}