由于网上关于纯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";
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。