Cassandra への挿入の単純なクエリの次のコードがあります。通常のステートメントはテーブルのタイムスタンプ列にタイムスタンプを挿入できないため、ここで準備済みステートメントを使用しようとしていますtime_demo
。
CassFuture* connect_future = NULL;
CassCluster* cluster = cass_cluster_new();
CassSession* session = cass_session_new();
char* hosts = "127.0.0.1";
time_t rt= time(NULL);
struct tm * timeinfo;
timeinfo = localtime ( &rt );
char lt[20];
strftime(lt, sizeof(lt), "%Y-%m-%d %T", timeinfo);
/* Add contact points */
cass_cluster_set_contact_points(cluster, hosts);
/* Provide the cluster object as configuration to connect the session with a specified keyspace*/
connect_future = cass_session_connect_keyspace(session, cluster,"test_keyspace");
//After this line program exits
CassFuture* prepare_future
= cass_session_prepare(session, "INSERT INTO time_demo(id,time) VALUES(now(),?);");
最後の行の後、私のプログラムは突然終了します。test_keyspace
準備済みステートメントも使用しながら、キースペースに接続したかったのです。コードを適切に記述していないため、プログラムが終了していると推測しています。
ここで私が犯した間違いを誰か指摘してもらえますか? C 用の Cassandra 2.13 ドライバーを使用しています。