Russian Qt Forum
Ноябрь 24, 2024, 02:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как Вы храните данные полученные из БД?  (Прочитано 3434 раз)
DpoHro
Гость
« : Май 24, 2009, 00:46 »

Как лучше хранить данные полученные из БД, оставлять в QSqlQuery или перекидывать в свои структуры?
Раньше оставлял в QSqlQuery, но как то это выглядит ущербно в том плане, что доступаться до полей нужно используя громоздкие конструкции, с другой стороны, если описывать свои структуры, то при редактировании структур таблиц нужно вносить изменения и в свои клиентские структуры.
Кроме того, нужно иметь возможность обмениваться между классами наборами этих данных, что в случае с QSqlQuery также выглядит немного неправильно. Поменял название поля и ищи по коду где им пользовался.

Извиняюсь за не достаточную проблемность вопроса, но интересно как храните данные Вы?
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #1 : Май 24, 2009, 01:05 »

в основном в QSqlQuery если не требуется отдельная обработка или повышенная производительность - а что вы называете громоздкой конструкцией доступа к полям?

я так делаю

Код:
QSqlQury query;
//........
//.... открыт и с данными
QSqlRecord rec = query.record();

int nID = query.value( rec.indexOf("ID") ).toInt();
QString sComment = query.value( rec.indexOf("COMMENT") ).toString();

если обращение к столбца идет несколько раз можно еще и сохранить их индексы в наборе данных типа:

Код:
int nIDX_ID = rec.indexOf("ID");
int nIDX_ID = rec.indexOf("COMMENT");

а дальше также обращаться

Код:
query.value( nIDX_ID ).toInt();
query.value( nIDX_ID ).toInt();

вроде не громоздкие? - когда то в дельфи датасетах работал с FieldByName - можно и что-то подобное написать... но мне каж. это и не нужно
Записан
majatu
Гость
« Ответ #2 : Июнь 10, 2009, 10:46 »

QSqlQueryModel , а дальше юзай указатель на него
Записан
roman.ks
Гость
« Ответ #3 : Июнь 11, 2009, 14:38 »

В зависимости от то, что вы в последствии с этими данными собираетесь делать можно поступить несколькими способами:
1. Если данные используются в осном для отображения и простенькая логика, тогда логичнее использовать модели
2. Если будет накручена сложная бизнес-логика, то тогда лучше в свои структуры выгружать. Но для этих целей C++ не очень подходит ( точнее вообще не подходит ).

Мне кажестся, что в вашем случае больше подходит вариант 1.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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