Cassandra中的Blob数据类型

时间:2017-11-02 06:29:53

标签: c++ cassandra blob cql

我对使用blob数据类型了解不多。我是Cassandra的新人,刚刚开始使用Cassandra的C ++ API。可以将C ++结构的内容存储在Cassandra的Blob中。如果是,那怎么样。例如,要将bigint存储为blob,我们必须使用bigintAsBlob()。

1 个答案:

答案 0 :(得分:2)

给出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*),否则这将无效。我没有对此进行测试,但我希望它有所帮助。