DB3 problem with put

From: Stephan Möck <s.moeck_at_gmx.de>
Date: Tue, 8 Apr 2003 14:54:27 +0200
I'm using DB3 to store file informationen. The key is the directory name and
the value is the inode number. At runtime I recieve the following error
message frome the database. Can anybody help me with this problem?

key:   /test   value:   16791
DB->put: DB_KEYEXIST: Key/data pair already exists		//should be 	/test/file
DB->put: DB_KEYEXIST: Key/data pair already exists		//should be
/test/textfile
DB->put: DB_KEYEXIST: Key/data pair already exists		// ...
DB->put: DB_KEYEXIST: Key/data pair already exists
DB->put: DB_KEYEXIST: Key/data pair already exists
DB->put: DB_KEYEXIST: Key/data pair already exists


void add_database(char *sub)
{
		memset(&key, 0, sizeof(key));
		memset(&data, 0, sizeof(data));

		key.data = sub;
		key.size = sizeof(sub);
		data.data = statbuf.st_ino;				//inode number from the stat() call
		key.size = sizeof(statbuf.st_ino);

		if ((ret = dbp1->put(dbp1, NULL, &key, &data, DB_NOOVERWRITE)) == 0)
		{
			printf("key:   %s   value:   %d\n", (char *)key.data,data.data);
		}
		else
		{
			dbp1->err(dbp1, ret, "DB->put");
		}
}


The calling function:

char *dir;
...
add_database(dir);
....
Received on Tue Apr 08 2003 - 13:54:42 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:03 UTC