Russian Qt Forum
Июнь 16, 2024, 05:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Посчитать размер каждого поля в таблице  (Прочитано 2255 раз)
Astrologer
Гость
« : Октябрь 13, 2010, 13:43 »

Всем привет. Допустим есть QSqlQueryModel. И в ней нужно найти максимальную длину записи в каждом поле.
Я пишу так. Может кто нибудь предложит быстрее? Только без графов, пожалуйста.  Улыбающийся Заранее благодарю.
Код
C++ (Qt)
QHash<QString, int> QDbfReader::getMaxFieldsSize(QSqlQueryModel* model)
{
   QHash<QString, int> hash;
   while(model->canFetchMore())
       model->fetchMore();
   for (int j=0; j < model->columnCount();++j)
   {
       QList<int> myList;
       for (int i = 0; i < model->rowCount(); ++i)
           myList << model->record(i).value(j).toString().size();
       qSort(myList.begin(), myList.end());
       int size = myList.at(myList.size()-1);
       hash.insert(model->headerData(j, Qt::Horizontal).toString(), size);
   }
   return hash;
}
 
« Последнее редактирование: Октябрь 13, 2010, 14:09 от Astrologer » Записан
Kolobok
Гость
« Ответ #1 : Октябрь 13, 2010, 14:03 »

Код
SQL
SELECT max( length( COLUMN ) ) FROM TABLE
 
Записан
Astrologer
Гость
« Ответ #2 : Октябрь 13, 2010, 14:30 »

 Улыбающийся ну я так и сделаю
Записан
trot
Гость
« Ответ #3 : Октябрь 13, 2010, 21:44 »

Для полей типа char всегда длина будет  равной длине указанной при создании таблицы, не зависимо от того какого размера текст там лежит в данный момент. Поэтому желательно еще использовать функции обрезающие пробелы.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.248 секунд. Запросов: 20.