Название: QBitArray записать в sql-запрос Отправлено: chu от Сентябрь 13, 2011, 16:26 Есть QBitArray[size]. Нужно его записать в поле BINARY(size) sql-таблицы (SQLite).
Так не работает (QString() только QByteArray может преобразовать): Код: QSqlQuery query; Название: Re: QBitArray записать в sql-запрос Отправлено: Пантер от Сентябрь 13, 2011, 16:31 Читай про prepare и bindValue.
Название: Re: QBitArray записать в sql-запрос Отправлено: chu от Сентябрь 14, 2011, 11:03 Читай про prepare и bindValue. Почитал, сделал так:Код: query.prepare("UPDATE table SET binaryColumn=:bit WHERE id = :id"); Пока сделал так (работает): Код: QString bitArrStr; Название: Re: QBitArray записать в sql-запрос Отправлено: GreatSnake от Сентябрь 14, 2011, 11:33 Цитировать Я что-то упустил? Как минимум перебил bindКод
Название: Re: QBitArray записать в sql-запрос Отправлено: chu от Сентябрь 14, 2011, 12:24 Цитировать Я что-то упустил? Как минимум перебил bindКод
Название: Re: QBitArray записать в sql-запрос Отправлено: Rem Norton от Сентябрь 14, 2011, 20:12 СУБД какая?
Для SQLite, например, можно сделать так: Код
Вообще query.bindValue следует использовать с оглядкой на то, что далеко не со всеми СУБД он работает корректно. Название: Re: QBitArray записать в sql-запрос Отправлено: chu от Сентябрь 14, 2011, 21:23 СУБД какая? А сможешь объяснить чем этот метод лучше того, что я описал во второй половине 3го сообщения темы? :)Для SQLite, например, можно сделать так: Код
Вообще query.bindValue следует использовать с оглядкой на то, что далеко не со всеми СУБД он работает корректно. Название: Re: QBitArray записать в sql-запрос Отправлено: Rem Norton от Сентябрь 14, 2011, 22:58 СУБД какая? А сможешь объяснить чем этот метод лучше того, что я описал во второй половине 3го сообщения темы? :)Для SQLite, например, можно сделать так: Код
Вообще query.bindValue следует использовать с оглядкой на то, что далеко не со всеми СУБД он работает корректно. Название: Re: QBitArray записать в sql-запрос Отправлено: Странник от Сентябрь 14, 2011, 23:10 SQL-запрос короче в 8 раз. А так,да, одно и то же. строго говоря, в 4 = ) chu, так что за СУБД-то? кончайте интригу. Название: Re: QBitArray записать в sql-запрос Отправлено: Rem Norton от Сентябрь 14, 2011, 23:20 SQL-запрос короче в 8 раз. А так,да, одно и то же. строго говоря, в 4 = ) chu, так что за СУБД-то? кончайте интригу. Название: Re: QBitArray записать в sql-запрос Отправлено: chu от Сентябрь 14, 2011, 23:49 SQLite
Название: Re: QBitArray записать в sql-запрос Отправлено: chu от Сентябрь 15, 2011, 16:03 Еще возникла проблема с извлечением bitArray из таблицы.
Пишу так: Код: QSqlQuery query; Код: 0xbfffe7b4 Название: Re: QBitArray записать в sql-запрос Отправлено: Rem Norton от Сентябрь 15, 2011, 16:17 Код
Название: Re: QBitArray записать в sql-запрос Отправлено: chu от Сентябрь 15, 2011, 16:51 Код
Название: Re: QBitArray записать в sql-запрос Отправлено: Rem Norton от Сентябрь 15, 2011, 17:40 А может попробовать приметно так:
Код
У меня так работает. Только вместо BitArray у меня ByteArray, но по идее это не меняет сути. Название: Re: QBitArray записать в sql-запрос Отправлено: chu от Сентябрь 16, 2011, 15:15 А может попробовать приметно так: По идее, не меняет, но с byteArray не работает Код
У меня так работает. Только вместо BitArray у меня ByteArray, но по идее это не меняет сути. Название: Re: QBitArray записать в sql-запрос Отправлено: chu от Сентябрь 16, 2011, 15:59 СУБД какая? Для SQLite, например, можно сделать так: Код
Не работает. buf пустой Название: Re: QBitArray записать в sql-запрос Отправлено: Rem Norton от Сентябрь 16, 2011, 20:15 Код в студию пожалуйста. А то создается впечатление, что вопрошающий не пытается услышать ответы.
P.S. У меня вот тут: http://qt-apps.org/content/show.php/Electronic+Business+Assistant?content=110164 (http://qt-apps.org/content/show.php/Electronic+Business+Assistant?content=110164) все замечателно работает. Можно скачать и убедиться. Что там может пойти не так (кроме ошибок в коде) я не знаю. Название: Re: QBitArray записать в sql-запрос Отправлено: chu от Сентябрь 16, 2011, 22:11 Код:
Код: QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); Код: Отладка запущена Код: 1.0101010101111e+34 Название: Re: QBitArray записать в sql-запрос Отправлено: Rem Norton от Сентябрь 16, 2011, 23:09 Ошибка вот тут:
Код: query.exec(QString("CREATE TABLE newTabel (id INT PRIMARY KEY, bitarr BINARY(200)) ")); Правильно так: Код
Как реализовать описано выше, ссылка на пример есть. |