CouchBase C 客户端接口调用实例
由于网上关于纯C接口的文章并不多,本人在工作中刚好接触到,在这里做一点小分享。
废话不说,先上下载地址 http://packages.couchbase.com...。
以下是官方代码:
#include <libcouchbase/couchbase.h> #include <stdlib.h> #include <stdio.h> #include <string.h> static void error_callback(lcb_t instance, lcb_error_t err, const char *errinfo) { fprintf(stderr, "Error %s: %s", lcb_strerror(instance, err), errinfo ? errinfo : ""); exit(EXIT_FAILURE); } /* the callback invoked by the library when receiving a get response */ static void get_callback(lcb_t instance, const void *cookie, lcb_error_t error, const lcb_get_resp_t *resp) { if (error != LCB_SUCCESS) { fprintf(stderr, "Failed to retrieve \""); fwrite(resp->v.v0.key, 1, resp->v.v0.nkey, stderr); fprintf(stderr, "\": %s\n", lcb_strerror(instance, error)); } else { fprintf(stderr, "Data for key: \""); fwrite(resp->v.v0.key, 1, resp->v.v0.nkey, stderr); fprintf(stderr, "\" is : "); fwrite(resp->v.v0.bytes, 1, resp->v.v0.nbytes, stderr); } (void)cookie; /* ignore */ } int main(void) { struct lcb_create_st create_options; lcb_t instance; lcb_error_t err; memset(&create_options, 0, sizeof(create_options)); create_options.v.v0.host = "myserver:8091"; create_options.v.v0.user = "mybucket"; create_options.v.v0.passwd = "secret"; create_options.v.v0.bucket = "mybucket"; err = lcb_create(&instance, &create_options); if (err != LCB_SUCCESS) { fprintf(stderr, "Failed to create libcouchbase instance: %s\n", lcb_strerror(NULL, err)); return 1; } /* set up the handler to catch all errors */ lcb_set_error_callback(instance, error_callback); /* initiate the connect sequence in libcouchbase */ err = lcb_connect(instance); if (err != LCB_SUCCESS) { fprintf(stderr, "Failed to initiate connect: %s\n", lcb_strerror(NULL, err)); return 1; } /* run the event loop and wait until we've connected */ lcb_wait(instance); /* set up a callback for our get requests */ lcb_set_get_callback(instance, get_callback); { lcb_get_cmd_t cmd; const lcb_get_cmd_t *commands[1]; commands[0] = &cmd; memset(&cmd, 0, sizeof(cmd)); cmd.v.v0.key = "foo"; cmd.v.v0.nkey = 3; err = lcb_get(instance, NULL, 1, commands); if (err != LCB_SUCCESS) { fprintf(stderr, "Failed to get: %s\n", lcb_strerror(NULL, err)); return 1; } } lcb_wait(instance); lcb_destroy(instance); exit(EXIT_SUCCESS); }
create_options.v.v0.host = "myserver:8091";
**请注意以下两句话,如果按照官方的标准调用的话,有可能提示管理员账号无法访问数据库错误,注释后成功访问!!!** //create_options.v.v0.user = "mybucket"; //create_options.v.v0.passwd = "secret"; create_options.v.v0.bucket = "mybucket";
相关推荐
lvwenyuan 2019-07-01
zhanbuquan 2019-06-30
Lanceyan 2019-06-30
luotuo 2014-10-14
gaofengyan 2014-05-03
ZHBMcCoy 2019-02-21
gengwx00 2018-03-05
AllenG 2018-05-14
红石丶 2016-10-25
gaofengyan 2013-08-27
85530494 2014-10-08
joananjin 2013-05-28