te paso un ejemplito que pude hacer andar bastante choto de unas ppt que vi
por ahí:
---------------------
#pragma comment(lib,"libdb48d.lib")
#include <db.h>
#include "ClaseBD.cpp"
#include <string.h>
void main()
{
ClaseBD bd;
bd.bdGrabar(24197887, "Gaston");
bd.bdGrabar(24197888, "Gaston2");
bd.bdGrabar(24197889, "Gaston3");
char* nom;
nom = bd.bdLeer(24197889);
nom = bd.bdLeer(24197887);
nom = bd.bdLeer(24197888);
}
---------------------------------------------
#pragma comment(lib,"libdb48d.lib")
#include <db.h>
#include <string.h>
class ClaseBD
{
private:
DB *dbp;
u_int32_t flags;
int ret;
public:
ClaseBD::ClaseBD(void)
{
ret = db_create(&dbp, NULL, 0);
if( !ret )
{
flags = DB_CREATE;
ret = dbp->open(dbp,
NULL,"BDBerkeley.db",NULL, DB_BTREE, flags, 0);
/*
if(!ret)
{
if(dbp != NULL)
dbp->close(dbp,0);
}
*/
}
}
void bdGrabar(long dni, char *nombre)
{
DBT key,data;
memset(&key, 0, sizeof(DBT));
memset(&data, 0, sizeof(DBT));
key.data = &dni;
key.size = sizeof(long);
data.data = nombre;
data.size = strlen(nombre) + 1;
ret = dbp->put(dbp, NULL, &key, &data,
DB_NOOVERWRITE);
if (ret == DB_KEYEXIST)
{
dbp->err(dbp, ret, "La clave %d ya
existe!\n", dni);
}
}
char* bdLeer(long dni)
{
DBT key,data;
memset(&key, 0, sizeof(DBT));
memset(&data, 0, sizeof(DBT));
char nombre[50];
key.data = &dni;
key.size = sizeof(long);
data.data = nombre;
data.ulen = 50;
data.flags = DB_DBT_USERMEM;
dbp->get(dbp, NULL, &key, &data, 0);
return nombre;
}
};
La ppt que vi la baje del repositorio publico:
http://svn2.xp-dev.com/svn/public-shared-tp-so-utn-frba/
ahora me encuentro adaptando este ejemplo feo a lo que pide el tp.
Gaston J. Sosa
-----Mensaje original-----
De: c-t...@googlegroups.com [mailto:c-t...@googlegroups.com] En nombre de
Damián
Enviado el: jueves, 28 de octubre de 2010 20:33
Para: C Talks
Asunto: [C-Talks:84] BERKELEY DB
--
Recibiste este mensaje porque estás suscrito al Grupo "C Talks".
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a c-t...@googlegroups.com
Para anular la suscripción a este grupo, envía un mensaje a
c-talks+u...@googlegroups.com
Para obtener más opciones, visita este grupo en
http://groups.google.com.ar/group/c-talks?hl=es.
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas
de virus 5573 (20101028) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas
de virus 5573 (20101028) __________
ESET NOD32 Antivirus ha comprobado este mensaje.