2017-11-02 1 views
0

BLOB 데이터 형식을 사용하는 것에 대해 많이 이해하지 못합니다. 저는 Cassandra를 처음 접했고 Cassandra의 C++ API로 작업하기 시작했습니다. C++ 구조체의 내용을 Cassandra의 Blob에 저장할 수 있습니까? 그렇다면 방법. 예를 들어 bigint를 blob로 저장하려면 bigintAsBlob()를 사용합니다.Blob 데이터 형식이 Cassandra

답변

1

감안할 struct :

struct my_struct { 
    int field1; 
    double field2; 
}; 

그리고 준비된 문 (난 당신이 준비된 문을 사용 희망)이 수행 할 수 statement는 준비된 명령문과 인덱스가있다

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)) 

을 스키마의 blob 필드의 인덱스 구조체는 동적 메모리를 사용하는 멤버가없는 POD 여야합니다 (예 : char*). 그렇지 않으면 작동하지 않습니다. 나는 이것을 시험하지 않았지만 그것이 도움이되기를 바랍니다.