Название: Как Вы храните данные полученные из БД? Отправлено: DpoHro от Май 24, 2009, 00:46 Как лучше хранить данные полученные из БД, оставлять в QSqlQuery или перекидывать в свои структуры?
Раньше оставлял в QSqlQuery, но как то это выглядит ущербно в том плане, что доступаться до полей нужно используя громоздкие конструкции, с другой стороны, если описывать свои структуры, то при редактировании структур таблиц нужно вносить изменения и в свои клиентские структуры. Кроме того, нужно иметь возможность обмениваться между классами наборами этих данных, что в случае с QSqlQuery также выглядит немного неправильно. Поменял название поля и ищи по коду где им пользовался. Извиняюсь за не достаточную проблемность вопроса, но интересно как храните данные Вы? Название: Re: Как Вы храните данные полученные из БД? Отправлено: break от Май 24, 2009, 01:05 в основном в QSqlQuery если не требуется отдельная обработка или повышенная производительность - а что вы называете громоздкой конструкцией доступа к полям?
я так делаю Код: QSqlQury query; если обращение к столбца идет несколько раз можно еще и сохранить их индексы в наборе данных типа: Код: int nIDX_ID = rec.indexOf("ID"); а дальше также обращаться Код: query.value( nIDX_ID ).toInt(); вроде не громоздкие? - когда то в дельфи датасетах работал с FieldByName - можно и что-то подобное написать... но мне каж. это и не нужно Название: Re: Как Вы храните данные полученные из БД? Отправлено: majatu от Июнь 10, 2009, 10:46 QSqlQueryModel , а дальше юзай указатель на него
Название: Re: Как Вы храните данные полученные из БД? Отправлено: roman.ks от Июнь 11, 2009, 14:38 В зависимости от то, что вы в последствии с этими данными собираетесь делать можно поступить несколькими способами:
1. Если данные используются в осном для отображения и простенькая логика, тогда логичнее использовать модели 2. Если будет накручена сложная бизнес-логика, то тогда лучше в свои структуры выгружать. Но для этих целей C++ не очень подходит ( точнее вообще не подходит ). Мне кажестся, что в вашем случае больше подходит вариант 1. |