Тип данных BLOB-объектов в Кассандре

Я не очень разбираюсь в использовании типа данных BLOB-объектов. Я новичок в Cassandra и только начал работать с C ++ API Cassandra. Может ли содержимое структуры C ++ храниться в BLOB Кассандры. Если да, то как. Например, чтобы сохранить bigint как blob, у нас есть bigintAsBlob ().

0

Решение

Учитывая struct:

struct my_struct {
int field1;
double field2;
};

И подготовленное заявление (я надеюсь, что вы используете подготовленные заявления), вы можете сделать это:

my_struct s;
std::unique_ptr<char[]> buffer(new char[sizeof(my_struct)]);
memcpy(buffer.get(), &s, sizeof(my_struct));
cass_statement_bind_bytes(statement, index, buffer.get(), sizeof(my_struct))

куда statement является подготовленным утверждением, а индекс является индексом blob поле в вашей схеме.
Обратите внимание, что ваша структура должна быть POD без членов, полагающихся на динамическую память (например, нет char*), иначе это не сработает. Я не проверял это, но я надеюсь, что это помогает.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector