Database Independent Abstraction Layer for C: libdbi Driver Author's Guide | ||
---|---|---|
Prev | Chapter 3. Driver Functions | Next |
These functions are called by libdbi at startup and when the libdbi user establishes or takes down a database engine connection.
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.
_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.
Performs any database-specific server initialization. This is called right after dbd_register_driver().
driver: The driver's pointer.
-1 on error, 0 on success. If -1 is returned, the driver will not be added to the list of available drivers.
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, port, username, password, dbname, and encoding. Any driver-specific functions must be prefixed with the name of the driver and an underscore, such as "mysql_compression".
conn: The target connection instance of the driver.
<0 on error, 0 on success.
Disconnects from the database server.
conn: The target connection instance of the driver.
-1 on error, 0 on success.
Retrieves and stores error information, in numeric and/or string format.
conn: The target connection.
errno: The int variable to hold the error number.
errstr: The string to hold the error description. The driver is supposed to provide the string as allocated memory which is further managed by libdbi.
0 if there was an error, 1 if errno was filled, 2 if errstr was filled, 3 if both errno and errstr were filled.
Retrieves the socket of the client/server connection used by the database client library, if applicable.
conn: The target connection.
The file descriptor of the socket if successful, -1 if there was an error. Drivers of database engines that do not use sockets should return 0.