Driver Infrastructure Functions

Database Independent Abstraction Layer for C: libdbi Driver Author's Guide (OUTDATED SEE README!)
Prev | Chapter 2. Driver Functions | Next

# 2.1. Driver Infrastructure Functions

## 2.1.1. dbd_register_driver

    void dbd_register_driver(const dbi_info_t **_driver_info, const char ***_custom_functions, const char ***_reserved_words)

This is the first function called after the driver module is loaded into memory. It passes back meta-information back to libdbi through the pointers passed as arguments.

Arguments

  `_driver_info`: A pointer used to link to the driver's information struct.

  `_custom_functions`: A pointer used to link to the driver's string array of custom database-specific functions.

  `_reserved_words`: A pointer used to link to the driver's string array of reserved words.

## 2.1.2. dbd_initialize

    int dbd_initialize(dbi_driver_t *driver)

Performs any database-specific server initialization. This is called right after dbd_register_driver().

Arguments

  `driver`: The driver's pointer.

Returns

  -1 on error, 0 on success. If -1 is returned, the driver will not be added to the list of available drivers.

## 2.1.3. dbd_connect

    int dbd_connect(dbi_conn_t *conn)

Connects to the database, setting the connection's DB-specific connection handle and current database name. Connection parameters are already filled through the connection's option settings. The standard options that all drivers must recognize (if applicable) are: host, username, password, dbname, and port. Any driver-specific functions must be prefixed with the name of the driver and an underscore, such as "mysql_compression".

Arguments

  `conn`: The target connection instance of the driver.

Returns

  -1 on error, 0 on success.

## 2.1.4. dbd_disconnect

    int dbd_disconnect(dbi_conn_t *conn)

Disconnects from the database server.

Arguments

  `conn`: The target connection instance of the driver.

Returns

  -1 on error, 0 on success.

## 2.1.5. dbd_quote_string

    int dbd_quote_string(dbi_driver_t *driver, const char *orig, char *dest)

Given a string, wrap quotes around that string and escape any characters that the database server needs escaped.

Arguments

  `driver`: A pointer to the driver itself, which may be useful in weird cases.

  `orig`: The string to quote and escape.

  `dest`: The destination for the new string, which is already allocated as (strlen(orig)*2)+4+1. In the worst case, each character will need to be escaped, with two quote characters at both the beginning and end of the string, plus one for the terminating NULL.

Returns

  The length of the new string.

## 2.1.6. dbd_geterror

    int dbd_geterror(dbi_conn_t *conn, int *errno, char **errstr)

Retrieves and stores error information, in numeric and/or string format.

Arguments

  `conn`: The target connection.

  `errno`: The int variable to hold the error number.

  `errstr`: The string to hold the error description.

Returns

  0 if there was an error, 1 if errno was filled, 2 if errstr was filled, 3 if both errno and errstr were filled.

Prev | Home | Next
Driver Functions | Up | Database Query Functions