Cassandra 中的 Blob 数据类型
Blob data type in Cassandra
我不太了解如何使用 blob 数据类型。我是 Cassandra 的新手,刚刚开始使用 Cassandra 的 C++ API。 C++ 结构的内容可以存储在 Cassandra 的 Blob 中吗?如果是,那么如何。例如,要将 bigint 存储为 blob,我们有 bigintAsBlob()。
给定一个 struct
:
struct my_struct {
int field1;
double field2;
};
还有一个prepared statement(希望大家使用prepared statements),可以这样做:
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
是准备好的语句,index 是架构中 blob
字段的索引。
请注意,您的结构必须是没有依赖动态内存的成员的 POD(例如,没有 char*
),否则这将不起作用。我没有对此进行测试,但希望它能有所帮助。
我不太了解如何使用 blob 数据类型。我是 Cassandra 的新手,刚刚开始使用 Cassandra 的 C++ API。 C++ 结构的内容可以存储在 Cassandra 的 Blob 中吗?如果是,那么如何。例如,要将 bigint 存储为 blob,我们有 bigintAsBlob()。
给定一个 struct
:
struct my_struct {
int field1;
double field2;
};
还有一个prepared statement(希望大家使用prepared statements),可以这样做:
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
是准备好的语句,index 是架构中 blob
字段的索引。
请注意,您的结构必须是没有依赖动态内存的成员的 POD(例如,没有 char*
),否则这将不起作用。我没有对此进行测试,但希望它能有所帮助。