Tutorial Berkeley DB
Enviado por Miriam Rincón • 22 de Enero de 2019 • Apuntes • 1.480 Palabras (6 Páginas) • 89 Visitas
Tipos de bases de datos Berkeley DB
BTREE: Orden preestablecido
HASHES: Tabla Hash. Búsqueda rápida.
REGISTROS: Orden secuencial.
Librerías
Compilar con -ldb
0-→éxito !=0-→error, perror()
ABRIR
*Nombre del programa en internet: opendb.c*/
/*
* abrir_db.c –Apertura y posterior cierre de una base de datos Berkeley DB
*/
#include
#include
#include
#include
int main(void){
DB *puntero_db; *Handler o descriptor de base de datos*/
int valor_retornado;
valor_retornado =db_open(“test.db”, DB_BTREE, DB_CREATE, 0600, NULL, NULL, &puntero, db);
if(valor_retornado){
perror(“db_open”);
exit(EXIT_FAILURE);
}
DB→close(puntero_db, 0);
exit(EXIT_SUCCESS);
}
AÑADIR REGISTRO
*Nombre del programa en internet: addb.c*/
/*
* añadir_registro.c –Apertura y posterior cierre de una base de datos Berkeley DB
*/
#include
#include
#include
#include
int main(void){
DB *puntero_db;
int valor_retornado, i =0;
DBT clave, valor;
valor_retornado =db_open(“test.db”, DB_BTREE, DB_CREATE, 0600, NULL, NULL, &puntero, db);
if(valor_retornado){
perror(“db_open”);
exit(EXIT_FAILURE);
}
*Inicializar primero el par clave y valor*/
memset(&clave, 0, sizeof(clave);
memset(&valor, 0, sizeof(valor);
*Asignarles valores a clave y valor*/
clave.data=”uno”;
clave.size=sizeof(“uno”);
valor.data= “Compilacion de programas”,
valor.size=sizeof(“Compilacion de programas”);
*Almacenar el par clave/valor*/
valor_retornado=puntero_db→put(db, NULL, &key, &value, DB_NOOVERWRITE);
if(valor_retornado ==DB_KEYEXIST){
fprintf(stderr, “Clave %s ya existe\n”, (char *)clave.data);
exit(EXIT_FAILURE);
}else{
perror(“put”);
exit(EXIT_FAILURE);
}
DB→close(puntero_db, 0);
exit(EXIT_SUCCESS);
}
SUPRESIÓN
*Nombre del programa en internet: delb.c*/
/*
* suprimir_registro.c –Apertura y posterior cierre de una base de datos Berkeley DB
*/
#include
#include
#include
#include
#include
int main(void){
DB *puntero_db;
int valor_retornado;
DBT clave;
valor_retornado =db_open(“test.db”, DB_BTREE, DB_CREATE, 0600, NULL, NULL, &puntero, db);
if(valor_retornado){
perror(“db_open”);
exit(EXIT_FAILURE);
}
*Inicializar primero la clave*/
memset(&clave, 0, sizeof(clave);
*La clave del registro que queremos eliminar*/
clave.data=”uno”;
clave.size=strlen(“uno”)+1;
*Eliminar el registro*/
valor_retornado=puntero_db→del(puntero_db, NULL, &clave, 0);
if(valor_retornado==DB_NOTFOUND){ *La clave no existe*/
fprintf(stderr, “Clave $s no encontrada\n”, (char *)clave.data);
exit(EXIT_FAILURE);
...