【问题标题】:Blob data type in CassandraCassandra 中的 Blob 数据类型
【发布时间】:2017-11-06 21:08:41
【问题描述】:

我不太了解使用 blob 数据类型。我是 Cassandra 的新手,刚刚开始使用 Cassandra 的 C++ API。 C++ 结构的内容可以存储在 Cassandra 的 Blob 中吗?如果是,那么如何。例如,要将 bigint 存储为 blob,我们使用 bigintAsBlob()。

【问题讨论】:

    标签: c++ cassandra blob cql


    【解决方案1】:

    给定一个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*),否则这将不起作用。我没有对此进行测试,但希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2018-03-26
      • 2014-10-01
      • 1970-01-01
      • 2017-12-04
      • 2019-09-02
      • 1970-01-01
      • 2014-01-31
      • 2014-06-25
      • 1970-01-01
      相关资源
      最近更新 更多