Problème lecture sequentielle avec dbopen - C - Programmation
MarshPosté le 23-04-2010 à 17:32:20
Bonjour,
Je ne comprends pas pourquoi le petit programme de test ci-dessous me retourne la liste entière des entrées ? j'obtiens des résultats corrects avec db->get mais pas avec db->seq ? merci beaucoup de votre aide.
Marsh Posté le 23-04-2010 à 17:32:20
Bonjour,
Je ne comprends pas pourquoi le petit programme de test ci-dessous me retourne la liste entière des entrées ?
j'obtiens des résultats corrects avec db->get mais pas avec db->seq ?
merci beaucoup de votre aide.
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <db_185.h>
int main()
{
DB *db;
DBT key,data;
char bkey[1000],bdata[1000];
int i;
unlink("test.db" );
db = dbopen("test.db", O_CREAT|O_RDWR, 0644, DB_BTREE, NULL);
key.data = bkey;
data.data = bdata;
key.size=4;
data.size=6;
for ( i = 0; i < 10; i++)
{
sprintf(bkey,"key%d",i);
sprintf(bdata,"data%d",i);
db->put(db,&key,&data,0);
}
db->close(db);
db = dbopen("test.db", O_RDONLY, 0, 0, NULL);
sprintf(bkey,"key3" );
while (!db->seq(db,&key,&data,R_NEXT))
{
printf("%s\n",data.data);
}
}