⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbcxx.cpp~

📁 这是我用QT和TTS写的一个电话本管理系统
💻 CPP~
字号:
//g++ -o dbcxx -ggdb -I/usr/local/BerkeleyDB.4.6/include/ -L/usr/local/BerkeleyDB.4.6/lib/ -ldb -lpthread#include <db_cxx.h> #include <stdio.h>#include <stdlib.h>#include <pthread.h>#define DATABASE "phonebook.db"// 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;           	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; 	int key_cust_c_id = 1;		//初始化结构体	cust.c_id = 1;	strncpy(cust.name, "promise", 9);	strncpy(cust.address, "chengdu", 19);	cust.age = 32;	//首先创建数据库句柄 	if ((ret = db_create(&dbp, NULL, 0)) != 0)	{		fprintf(stderr, "db_create: %s\n", db_strerror(ret));		exit (1);	}		//设置数据库参数	flags = DB_CREATE; 	// 创建一个数据库,使用HASH访问算法,本段代码演示对复杂数据结构的处理		if ((ret = dbp->open(dbp, NULL, "DATABASE", NULL, DB_HASH, flags, 0664)) != 0)	{		dbp->err(dbp, ret, "%s", DATABASE);		exit (1);	}		//insert data	init_DBT(&key, &data);	key.size = sizeof(int);	key.data = &(cust.c_id);	data.size = sizeof(CUSTOMER);	data.data = &cust;	if(ret = dbp->put(dbp, NULL, &key, &data,DB_NOOVERWRITE)==0)	{		printf("db: %s: key stored.\n", (char *)key.data);	}	else		dbp->err(dbp, ret, "DB->put");			//select data				memset(&cust, 0, sizeof(CUSTOMER));	key.size = sizeof(int);	key.data = &key_cust_c_id;	data.data = &cust;	data.ulen = sizeof(CUSTOMER); 	data.flags = DB_DBT_USERMEM;	if(dbp->get(dbp, NULL, &key, &data, 0)==0)	{		printf("db: %s: key retrieved: data was %s.\n", (char *)key.data, (char *)data.data);	}	else		dbp->err(dbp, ret, "DB->get");				printf("c_id = %d name = %s address = %s age = %d\n", 		cust.c_id, cust.name, cust.address, cust.age);		if(dbp != NULL)    		dbp->close(dbp, 0); 	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -