crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QSqlRelationalTableModel и fieldIndex в дочернем классе.
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 24.4.2017, 11:44
  столкнулся с той же проблемой, выяснил следующее:
Есть такой код
model->setRelation(model->fieldIndex("pumpId"), QSqlRelation("flow_pumps", "id", "displayName"));
model->select();

после селекта model->fieldIndex("pumpId"), уже возвращает -1, поле "pumpId" превращается в "flow_pumps_displayName_4" (подсказал: qDebug() << "Record:" << model->record(); )

Вопрос: как же получить индекс поля по его нормальному имени ("pumpId")?
balbes Дата 8.8.2012, 12:33
  Где-то портится указатель?
smartchecker Дата 21.5.2012, 19:29
 
    QSqlRelationalTableModel *modelBooks;

    modelBooks = new QSqlRelationalTableModel(this, db);
    modelBooks->setTable("books");
    modelBooks->setEditStrategy(QSqlTableModel::OnManualSubmit);

    langsIndex = modelBooks->fieldIndex("lang_id");
    modelBooks->setRelation(langsIndex, QSqlRelation("langs", "id", "language"));

Передаю в другой класс указатель modelBooks. И когда пытаюсь в другом классе вызвать, то возвращает -1. Если просто прописать индекс, то всё работает.
Где ошибся?
//    langIdx = booksModel->fieldIndex("lang_id");
//    QSqlTableModel *langModel = booksModel->relationModel(langIdx);
    QSqlTableModel *langModel = booksModel->relationModel(10);
    ui->langComboBox->setModel(langModel);
    ui->langComboBox->setModelColumn(langModel->fieldIndex("language"));
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 15:40