Ruslan Polupan
Там. 31, 2016, 1:28 Т.Ж.

Возможно ли использовать trim в столбцах QSqlTableModel ?

QSqlTableModel, trim

Исторически сложилось, что в базе данных есть поля с записями такого вида
"Кравченко________________________________________________________".
Т.е. заполненные пробелами до максимального значения длины поля заданного при создании таблицы.
Стоит вопрос где их убирать.
если бы это была QSqlQueryModel тогда просто убираем пробелы в запросе.
modelListOperators->setQuery("SELECT trim(name) FROM operators",dbc);
А вот как это организовать в QSqlTableModel?

Или я плохо изучал Асистант… :-)

0

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

1
Evgenii Legotckoi
  • Там. 31, 2016, 2:29 Т.Қ.
  • Жауап шешім ретінде белгіленді.

Полагаю, что в QSqlTableModel при изъятии данных из базы данных убрать пробелы сразу не получится.
Но если наследоваться от QSqlTableModel, то можно переопределить метод
QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const;
И уже в нём убрать пробелы.
Думаю, что должно сработать, если написать следующим образом:

QVariant MySqlTableModel::data(const QModelIndex &index, int role) const
{
    return QSqlTableModel::data(index, role).toString().trimmed();
}

 

    Пікірлер

    Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
    Кіріңіз немесе Тіркеліңіз