crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> помещение бинарных данных в строку
legat
  опции профиля:
сообщение 19.5.2011, 10:21
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 10
Регистрация: 8.8.2010
Пользователь №: 1940

Спасибо сказали: 0 раз(а)




Репутация:   0  


Имеются запросы к SQLite БД по созданию таблицы и добавления в неё бинарных данных:
const std::string CREATE_FILE = "Create table files( id integer primary key autoincrement, file blob );";
const std::string ADD_FILE = "Insert into files( file ) values( '%s' ); Select last_insert_rowid( );";


Сам запрос я формирую в строке str следующим образом:
std::string str;
sprintf( ( char * )str.c_str( ), ADD_FILE.c_str( ), blobData );
executeSQL( str );


Вопрос:
Как мне передать в строку бинарные данные, которые могут содержать \0 и прочие служебные символы в середине, чтобы не было потери данных.
blobData предположительно char *. Не могу пока найти, что использовать для бинарных данным в строке формата вместо %s.

Можно, конечно, передавать в строку в цикле побайтово из blobData. Но это слишком не эффективно. К тому же не ясно, что делать с \0-ми.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 16.4.2024, 10:00