## GdaDataModelBdb GdaDataModelBdb — GdaDataModel to access Berkeley DB database contents |

## Stability Level

Stable, unless otherwise indicated

## Synopsis

    struct              GdaDataModelBdb;
    struct              GdaDataModelBdbClass;
                        GdaDataModelBdbPrivate;
    GdaDataModel *      gda_data_model_bdb_new              (const gchar *filename,
                                                             const gchar *db_name);
    const GSList *      gda_data_model_bdb_get_errors       (GdaDataModelBdb *model);
    void                gda_data_model_bdb_clean_errors     (GdaDataModelBdb *model);

## Object Hierarchy

      GObject
       +----GdaDataModelBdb

## Implemented Interfaces

GdaDataModelBdb implements GdaDataModel.

## Properties

      "db-name"                  gchar*                : Read / Write / Construct Only
      "filename"                 gchar*                : Read / Write / Construct Only

## Description

The GdaDataModelBdb object allows to access the contents of a Berkeley DB database as a GdaDataModel object.

By default the resulting GdaDataModel contains only two columns (named "key" and "data") of type GDA_TYPE_BINARY, but this object can be subclassed to convert the key or data part of a BDB record into several columns (implement the `create_key_columns()`, `create_data_columns()`, `get_key_part()`, and `get_data_part()` virtual methods).

Note: this type of data model is available only if the Berkeley DB library was found at compilation time.

## Details

### struct GdaDataModelBdb

    struct GdaDataModelBdb;

### struct GdaDataModelBdbClass

    struct GdaDataModelBdbClass {
    	GObjectClass            parent_class;

    	/* virtual methods */
    	GSList                *(*create_key_columns)  (GdaDataModelBdb *model);
    	GSList                *(*create_data_columns) (GdaDataModelBdb *model);
    	GValue                *(*get_key_part)        (GdaDataModelBdb *model,

    						       gpointer data, gint length, gint part);
    	GValue                *(*get_data_part)       (GdaDataModelBdb *model,
    						       gpointer data, gint length, gint part);
    	gboolean               (*update_key_part)     (GdaDataModelBdb *model,
    						       gpointer data, gint length, gint part,
    						       const GValue *value, GError **error);
    	gboolean               (*update_data_part)    (GdaDataModelBdb *model,
    						       gpointer data, gint length, gint part,
    						       const GValue *value, GError **error);
    };

### GdaDataModelBdbPrivate

    typedef struct _GdaDataModelBdbPrivate GdaDataModelBdbPrivate;

### gda_data_model_bdb_new ()

    GdaDataModel *      gda_data_model_bdb_new              (const gchar *filename,
                                                             const gchar *db_name);

Creates a new GdaDataModel object to access the contents of the Berkeley DB file `file`, for the database `db_name` if not `NULL`

`filename` : | name of the file containing the database
`db_name` : | the name of the database within `filename`, or `NULL`. [allow-none]
Returns : | a new GdaDataModel. [transfer full]

### gda_data_model_bdb_get_errors ()

    const GSList *      gda_data_model_bdb_get_errors       (GdaDataModelBdb *model);

Get the list of errors which have occurred while using `model`

`model` : | a GdaDataModelBdb object
Returns : | a read-only list of GError pointers, or `NULL` if no error has occurred. [element-type GObject.Error][transfer none]

### gda_data_model_bdb_clean_errors ()

    void                gda_data_model_bdb_clean_errors     (GdaDataModelBdb *model);

Reset the list of errors which have occurred while using `model`

`model` : | a GdaDataModelBdb object

## Property Details

### The `"db-name"` property

      "db-name"                  gchar*                : Read / Write / Construct Only

Name of the database.

Default value: NULL

### The `"filename"` property

      "filename"                 gchar*                : Read / Write / Construct Only

DB file.

Default value: NULL

## See Also

GdaDataModel