crossplatform.ru

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

> QSqlTableModel + QTableView + sort -> Debug ?, Стабильный вылет в Deb-g (MySQL) при сортировке
JohnZ
  опции профиля:
сообщение 30.7.2015, 10:44
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 139
Регистрация: 19.7.2014
Пользователь №: 4190

Спасибо сказали: 10 раз(а)




Репутация:   0  


Всем Здравия !

Прошу прощения если не в том разделе спрашиваю, может это к относится к MVC ... Можно будет перенести.

Проблема следующая. Есть QSqlTableModel + QTableView. QSqlTableModel слегка изменена в плане видимых колонок,
но думаю что это неважно. Если выводится таблица полностью, т.е. без фильтра, сортировка по нажатию на заголовок колонки
работает без проблем, но если включен фильтр ( model->setFilter(Str); ) и попытке сортировать, имеем стабильный вылет в Debug, причём вылетает где-то в недрах драйвера MySQL по нулевому указателю. Где копать ? Если нужна модель, - выложу, но как я уже сказал, изменения минимальны, да и без фильтра ведь работает ... Помогите plz кто в сталкивался или в курсе.



Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
lanz
  опции профиля:
сообщение 30.7.2015, 13:17
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


Проблема обычно в новом коде, вряд ли в драйвере.

А как вы меняете видимые колонки?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
JohnZ
  опции профиля:
сообщение 30.7.2015, 15:56
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 139
Регистрация: 19.7.2014
Пользователь №: 4190

Спасибо сказали: 10 раз(а)




Репутация:   0  


Цитата(lanz @ 30.7.2015, 13:17) *
Проблема обычно в новом коде, вряд ли в драйвере.

А как вы меняете видимые колонки?

Согласно заданного списка.
Раскрывающийся текст

#include "fptablemodel.h"

fpTableModel::fpTableModel(QObject * parent, QSqlDatabase db)
: QSqlTableModel(parent, db)
{
colsInList = colsInForm = 0;
}

fpTableModel::~fpTableModel()
{
}

void fpTableModel::setTable ( const QString & tableName )
{
QSqlTableModel::setTable ( tableName );
setEditStrategy(QSqlTableModel::OnRowChange);
// setEditStrategy(QSqlTableModel::OnManualSubmit);
// select();
colsInList = colsInForm = QSqlTableModel::columnCount();
}

void fpTableModel::setDefFields(QStringList &df)
{
DefFields = df;
colsInList = df.count();
}

void fpTableModel::setFilter(const QString & filter)
{
QSqlTableModel::setFilter ( filter );
select();
}

В общем-то ничего особенного, просто запоминаю переданный список, согласно которого потом в форме создаю колонки из этого списка. Если установки небыло, тогда показываются все колонки, т.е. вся таблица.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Тема закрытаНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.4.2024, 1:49