Хранилища Subversion OpenInventory

Редакция

Редакция 84 | К новейшей редакции | Весь файл | Не учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS

Редакция 84 Редакция 86
Строка 22... Строка 22...
22
22
23
23
24
bool ModelForPointers::setData(const QModelIndex &index, const QVariant &value, int role) {
24
bool ModelForPointers::setData(const QModelIndex &index, const QVariant &value, int role) {
25
  ////  if (index.column()==3) return false; // â òðåòüåé êîëîíêå íå äàåì ïîìåíÿòü çíà÷åíèå
25
  ////  if (index.column()==3) return false; // â òðåòüåé êîëîíêå íå äàåì ïîìåíÿòü çíà÷åíèå
26
    bool lResult = false;
26
    bool lResult = false;
-
 
27
    QVariant old_value; // ñîõðàíèì ñòàðîå çíà÷åíèå
-
 
28
    old_value = data(index);
-
 
29
-
 
30
    if (index.column()==1){ // åñëè ïîìåíÿëîñü èìÿ ïîëÿ
-
 
31
        QSqlQuery qu;
-
 
32
        QString old_field_name; // ñòàðîå èìÿ ïîëÿ
-
 
33
        QString new_field_name; // íîâîå èìÿ ïîëÿ
-
 
34
        QString query_str;
-
 
35
        QString type_str; // òèï äàííûõ ïîëÿ
-
 
36
        old_field_name = old_value.toString(); // îïðåäåëèì òåêóùåå (êîòîðîå íóæíî ïîìåíÿòü) èìÿ ïîëÿ
-
 
37
        new_field_name = value.toString();
-
 
38
        // type_str = data(ModelForPointers::index(index.row(), 3)).toString(); // òèï ïîëÿ õðàíèòüñÿ â 3 ñòîëáöå, ñ÷èòûâàåì åãî çíà÷åíèå
-
 
39
        type_str = tr("CHAR(10)");
-
 
40
-
 
41
        query_str = tr("ALTER TABLE ");
-
 
42
        query_str.append(ModelForPointers::Inctance);
-
 
43
        query_str.append(tr(" CHANGE COLUMN `"));
-
 
44
        query_str.append(old_field_name);
-
 
45
        query_str.append(tr("` `"));
-
 
46
        query_str.append(new_field_name);
-
 
47
        query_str.append(tr("` "));
-
 
48
        query_str.append(type_str);
-
 
49
        query_str.append(tr(" CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL"));
-
 
50
        qu.prepare(query_str);
-
 
51
        bool ok;
-
 
52
        ok = qu.exec();
-
 
53
        if (!ok) return false;
-
 
54
    }
-
 
55
27
56
28
57
29
    lResult = QSqlTableModel::setData(index, value, role);
58
    lResult = QSqlTableModel::setData(index, value, role);
30
    if (lResult) {
59
    if (lResult) {
31
        QModelIndex newindex;
60
        QModelIndex newindex;
Строка 34... Строка 63...
34
        rec.setValue(index.column(), value);
63
        rec.setValue(index.column(), value);
35
        rec.setGenerated(index.column(), true);
64
        rec.setGenerated(index.column(), true);
36
65
37
66
38
        lResult = updateRowInTable(index.row(), rec);
67
        lResult = updateRowInTable(index.row(), rec);
-
 
68
        emit field_changed();
39
  ///      QSqlTableModel::setData(newindex, QVariant(str_tmp), Qt::EditRole);
69
  ///      QSqlTableModel::setData(newindex, QVariant(str_tmp), Qt::EditRole);
40
70
41
71
42
    }
72
    }
43
    return lResult;
73
    return lResult;