📄 testcursor2.cpp~
字号:
//get data#include <db_cxx.h> #include <stdio.h>#include <stdlib.h>#include <pthread.h>/* DB的函数执行完成后,返回0代表成功,否则失败 */void print_error(int ret){ if(ret != 0) printf("ERROR: %s\n",db_strerror(ret));}/* 数据结构DBT在使用前,应首先初始化,否则编译可通过但运行时报参数错误 */void init_DBT(DBT * key, DBT * data){ memset(key, 0, sizeof(DBT)); memset(data, 0, sizeof(DBT));}int main(void){ DB *dbp; DBC * cur; DBT key, data; u_int32_t flags; int ret; typedef struct customer { //int c_id; char name[10]; char address[20]; int age; } CUSTOMER; CUSTOMER cust; ret = db_create(&dbp, NULL, 0); print_error(ret); flags = DB_CREATE; /* 创建一个名为complex.db的数据库,使用HASH访问算法,本段代码演示对复杂数据结构的处理 */ ret = dbp->open(dbp, NULL, "complex.db", NULL, DB_BTREE, flags, 0); print_error(ret); dbp->cursor(dbp, NULL, &cur, 0); init_DBT(&key, &data); while((ret = cur->c_get(cur, &key, &data, DB_NEXT)) == 0) { // printf("name = %s address = %s age = %d\n",data.name, data.address, data.age); printf("db: %s: key retrieved: data was %s.\n",(char *)key.data, (char *)data.data); //data.data = &cust; //data.ulen = sizeof(CUSTOMER); //printf("cust.name=% cust.address=% cust.age=%s\n\n",cust.name,cust.address,cust.age); printf("key = %s\n",*((float*)key.data)); printf("data = %s\n",(char *)data.data); } //if(dbp != NULL) cur->c_close(cur); dbp->close(dbp, 0); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -