Next: , Previous: , Up: Top   [Contents][Index]


6 Inserting and replacing records in the database

gdbm interface: int gdbm_store (GDBM_FILE dbf, datum key, datum content, int flag)

The function gdbm_store inserts or replaces records in the database.

The parameters are:

dbf

The pointer returned by gdbm_open.

key

The search key.

content

The data to be associated with the key.

flag

Defines the action to take when the key is already in the database. The value GDBM_REPLACE (defined in gdbm.h) asks that the old data be replaced by the new content. The value GDBM_INSERT asks that an error be returned and no action taken if the key already exists.

This function can return the following values:

0

Success. The value of content is keyed by key in the database.

-1

The item was not stored in the database because the caller was not an official writer or either key or content have a NULL dptr field.

Both key and content must have the dptr field be a non-NULL value. Since a NULL dptr field is used by other functions to indicate an error, it cannot be valid data.

+1

The item was not stored because the argument flag was GDBM_INSERT and the key was already in the database.

If you store data for a key that is already in the data base, gdbm replaces the old data with the new data if called with GDBM_REPLACE. You do not get two data items for the same key and you do not get an error from gdbm_store.

The size of datum in gdbm is restricted only by the maximum value for an object of type int (type of the dsize member of datum).


Next: , Previous: , Up: Top   [Contents][Index]