Russian Qt Forum

Qt => Базы данных => Тема начата: discribe от Апрель 20, 2010, 13:26



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


Название: Re: Как записать одномерный массив используя QT в postgress?
Отправлено: MoPDoBoPoT от Апрель 20, 2010, 15:11
метод 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)


Название: Re: Как записать одномерный массив используя QT в postgress?
Отправлено: Marat(Qt) от Апрель 25, 2010, 18:05
Добрый день, возник вопрос по записи одномерного массива в БД постгресс. Postgress может хранить массивы данных, допустим типа double precision[], а метод QsqlQuery :: void bindValue ( int pos, const QVariant & val, QSql::ParamType paramType = QSql::In ) принимает в качестве параметра класс  QVariant, в свою очередь преобразование массива  QVariant не поддерживает, может кто сталкивался с проблемой записи массивов данных и сможете проконсультировать меня)  Премного благодарен заранее.
Получи массив запросом из базы и сделай toString - посмотри как в строке массив хранится, когда будешь отсылать информацию (update, insert, etc) записывай массив в QString в таком формате, в каком тебе их postgre высылает