Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Разработка баз данных _ Как записать одномерный массив используя QT в postgress (или другую любую БД)?

Автор: discribe_85 21.4.2010, 8:40

Добрый день, возник вопрос по записи одномерного массива в БД постгресс. Postgress может хранить массивы данных, допустим типа double precision[], а метод QsqlQuery :: void bindValue ( int pos, const QVariant & val, QSql::ParamType paramType = QSql::In ) принимает в качестве параметра класс QVariant, в свою очередь преобразование массива QVariant не поддерживает, может кто сталкивался с проблемой записи массивов данных и сможете проконсультировать меня) Премного благодарен заранее.

Автор: MoPDoBoPoT 21.4.2010, 19:50

Цитата(discribe_85 @ 21.4.2010, 9:40) *
метод QsqlQuery :: void bindValue ( int pos, const QVariant & val, QSql::ParamType paramType = QSql::In ) принимает в качестве параметра класс QVariant, в свою очередь преобразование массива QVariant не поддерживает

Зато поддерживает QVariantList (он же QList<QVariant>).
Не совсем понял как у тебя организована работа с массивом в БД, но возможно тебе поможет QSqlQuery::execBatch() (надо смотреть поддержку драйвером (SqlDriver::hasFeature()) возможностей QSqlDriver::BatchOperations и QSqlDriver::MultipleResultSets)

Автор: Litkevich Yuriy 22.4.2010, 11:56

Цитата(MoPDoBoPoT @ 21.4.2010, 23:50) *
надо смотреть поддержку драйвером (SqlDriver::hasFeature()
в Qt вообще нет такой возможности, см. описание http://doc.crossplatform.ru/qt/4.6.x/qsqldriver.html#DriverFeature-enum

Автор: MoPDoBoPoT 29.4.2010, 18:53

Цитата(Litkevich Yuriy @ 22.4.2010, 12:56) *
в Qt вообще нет такой возможности

Я указал на метод, которым проверяется поддержка фич.
Или я не понял вопроса.

Автор: Litkevich Yuriy 29.4.2010, 20:44

Цитата(MoPDoBoPoT @ 29.4.2010, 22:53) *
Я указал на метод, которым проверяется поддержка фич.
Или я не понял вопроса.
вопроса ни какого нет. Есть утверждение, нет смысла вызывать этот метод, т.к. в Qt просто отсутствует данная возможность

Автор: MoPDoBoPoT 30.4.2010, 11:16

Цитата(Litkevich Yuriy @ 29.4.2010, 21:44) *
нет смысла вызывать этот метод, т.к. в Qt просто отсутствует данная возможность

Где это такое написано?

Автор: Litkevich Yuriy 30.4.2010, 12:35

Цитата(MoPDoBoPoT @ 30.4.2010, 15:16) *
Где это такое написано?
в том-то и дело, что эта возможность отсутствует в с писке возможностей.
В этом списке кроме BLOB ничего нет, а Array, такой же встроенный тип данных.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)