Название: Запись двоичных даннных в SQLITE 3 Отправлено: sergek от Июнь 10, 2014, 20:49 Коллеги, я правильно понимаю, чтобы записать двоичные данные в Blob Sqlite, их нужно преобразовать в текстовый формат, например, путем кодирования в base64? Иначе говоря, QByteArray, содержащий нули (0x00) записать без преобразования не удастся?
Название: Re: Запись двоичных даннных в SQLITE 3 Отправлено: Old от Июнь 10, 2014, 20:56 А что показали тесты?
Название: Re: Запись двоичных даннных в SQLITE 3 Отправлено: Bepec от Июнь 10, 2014, 20:59 sqlite насквозь текстовый. Преобразуйте в hex и будет вам счастье.
Название: Re: Запись двоичных даннных в SQLITE 3 Отправлено: sergek от Июнь 11, 2014, 06:58 А что показали тесты? Так то и показали... Но на упаковке написано "Blob", что ж, мне глазам не верить? :)sqlite насквозь текстовый. Преобразуйте в hex и будет вам счастье. А в хексах он гораздо длиннее...Название: Re: Запись двоичных даннных в SQLITE 3 Отправлено: Bepec от Июнь 11, 2014, 14:44 Ну как ни гонись за скоростью, но SQLite именно Lite. Серьёзной скорости от него не добиться на больших массивах.
На преобразовании в строку теряется больше времени, чем на запись в базу :) Название: Re: Запись двоичных даннных в SQLITE 3 Отправлено: sergek от Июнь 11, 2014, 18:12 Ну как ни гонись за скоростью, но SQLite именно Lite. Серьёзной скорости от него не добиться на больших массивах. Согласен, конечно. Про хексы - это на рефлексах. Если можно сделать лучше, то нельзя делать как придется ;)На преобразовании в строку теряется больше времени, чем на запись в базу :) Вообще-то я делаю прототип, маленький кусочек. В проме это будет работать на MySQL. И все равно, не могу понять Blob в Sqlite - что это за large B... Название: Re: Запись двоичных даннных в SQLITE 3 Отправлено: mitrich от Июнь 12, 2014, 00:02 sqlite насквозь текстовый. Преобразуйте в hex и будет вам счастье. Никакой он не текстовый, бинарные данные хранит как положено и преобразовывать ничего не надо. Функция sqlite3_bind_blob (http://www.sqlite.org/c3ref/bind_blob.html) одним из параметров принимает размер данных.И в драйвере, в зависимости от типа передаваемых данных используются нужные вызовы API: Код
Если не удаётся записать, может в QSqlQuery::bindValue() данные как-то неправильно передаете (напр., в виде char* вместо QByteArray)? Код
Название: Re: Запись двоичных даннных в SQLITE 3 Отправлено: sergek от Июнь 16, 2014, 17:18 Спасибо! Был не прав, все пишется. Подвела смотрелка :(
|