Defines | |
#define | APR_DBD_TRANSACTION_COMMIT 0x00 |
#define | APR_DBD_TRANSACTION_ROLLBACK 0x01 |
#define | APR_DBD_TRANSACTION_IGNORE_ERRORS 0x02 |
Typedefs | |
typedef struct apr_dbd_driver_t | apr_dbd_driver_t |
typedef struct apr_dbd_t | apr_dbd_t |
typedef struct apr_dbd_transaction_t | apr_dbd_transaction_t |
typedef struct apr_dbd_results_t | apr_dbd_results_t |
typedef struct apr_dbd_row_t | apr_dbd_row_t |
typedef struct apr_dbd_prepared_t | apr_dbd_prepared_t |
Enumerations | |
enum | apr_dbd_type_e { APR_DBD_TYPE_NONE, APR_DBD_TYPE_TINY, APR_DBD_TYPE_UTINY, APR_DBD_TYPE_SHORT, APR_DBD_TYPE_USHORT, APR_DBD_TYPE_INT, APR_DBD_TYPE_UINT, APR_DBD_TYPE_LONG, APR_DBD_TYPE_ULONG, APR_DBD_TYPE_LONGLONG, APR_DBD_TYPE_ULONGLONG, APR_DBD_TYPE_FLOAT, APR_DBD_TYPE_DOUBLE, APR_DBD_TYPE_STRING, APR_DBD_TYPE_TEXT, APR_DBD_TYPE_TIME, APR_DBD_TYPE_DATE, APR_DBD_TYPE_DATETIME, APR_DBD_TYPE_TIMESTAMP, APR_DBD_TYPE_ZTIMESTAMP, APR_DBD_TYPE_BLOB, APR_DBD_TYPE_CLOB, APR_DBD_TYPE_NULL } |
Functions | |
apr_status_t | apr_dbd_init (apr_pool_t *pool) |
apr_status_t | apr_dbd_get_driver (apr_pool_t *pool, const char *name, const apr_dbd_driver_t **driver) |
apr_status_t | apr_dbd_open_ex (const apr_dbd_driver_t *driver, apr_pool_t *pool, const char *params, apr_dbd_t **handle, const char **error) |
apr_status_t | apr_dbd_open (const apr_dbd_driver_t *driver, apr_pool_t *pool, const char *params, apr_dbd_t **handle) |
apr_status_t | apr_dbd_close (const apr_dbd_driver_t *driver, apr_dbd_t *handle) |
const char * | apr_dbd_name (const apr_dbd_driver_t *driver) |
void * | apr_dbd_native_handle (const apr_dbd_driver_t *driver, apr_dbd_t *handle) |
int | apr_dbd_check_conn (const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle) |
int | apr_dbd_set_dbname (const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, const char *name) |
int | apr_dbd_transaction_start (const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_transaction_t **trans) |
int | apr_dbd_transaction_end (const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_transaction_t *trans) |
int | apr_dbd_transaction_mode_get (const apr_dbd_driver_t *driver, apr_dbd_transaction_t *trans) |
int | apr_dbd_transaction_mode_set (const apr_dbd_driver_t *driver, apr_dbd_transaction_t *trans, int mode) |
int | apr_dbd_query (const apr_dbd_driver_t *driver, apr_dbd_t *handle, int *nrows, const char *statement) |
int | apr_dbd_select (const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_results_t **res, const char *statement, int random) |
int | apr_dbd_num_cols (const apr_dbd_driver_t *driver, apr_dbd_results_t *res) |
int | apr_dbd_num_tuples (const apr_dbd_driver_t *driver, apr_dbd_results_t *res) |
int | apr_dbd_get_row (const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_results_t *res, apr_dbd_row_t **row, int rownum) |
const char * | apr_dbd_get_entry (const apr_dbd_driver_t *driver, apr_dbd_row_t *row, int col) |
const char * | apr_dbd_get_name (const apr_dbd_driver_t *driver, apr_dbd_results_t *res, int col) |
const char * | apr_dbd_error (const apr_dbd_driver_t *driver, apr_dbd_t *handle, int errnum) |
const char * | apr_dbd_escape (const apr_dbd_driver_t *driver, apr_pool_t *pool, const char *string, apr_dbd_t *handle) |
int | apr_dbd_prepare (const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, const char *query, const char *label, apr_dbd_prepared_t **statement) |
int | apr_dbd_pquery (const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, int *nrows, apr_dbd_prepared_t *statement, int nargs, const char **args) |
int | apr_dbd_pselect (const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_results_t **res, apr_dbd_prepared_t *statement, int random, int nargs, const char **args) |
int | apr_dbd_pvquery (const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, int *nrows, apr_dbd_prepared_t *statement,...) |
int | apr_dbd_pvselect (const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_results_t **res, apr_dbd_prepared_t *statement, int random,...) |
int | apr_dbd_pbquery (const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, int *nrows, apr_dbd_prepared_t *statement, const void **args) |
int | apr_dbd_pbselect (const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_results_t **res, apr_dbd_prepared_t *statement, int random, const void **args) |
int | apr_dbd_pvbquery (const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, int *nrows, apr_dbd_prepared_t *statement,...) |
int | apr_dbd_pvbselect (const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_results_t **res, apr_dbd_prepared_t *statement, int random,...) |
apr_status_t | apr_dbd_datum_get (const apr_dbd_driver_t *driver, apr_dbd_row_t *row, int col, apr_dbd_type_e type, void *data) |
#define APR_DBD_TRANSACTION_COMMIT 0x00 |
commit the transaction
#define APR_DBD_TRANSACTION_IGNORE_ERRORS 0x02 |
ignore transaction errors
#define APR_DBD_TRANSACTION_ROLLBACK 0x01 |
rollback the transaction
enum apr_dbd_type_e |
Mapping of C to SQL types, used for prepared statements.
For apr_dbd_p[v]bquery/select functions, in and out parameters are described next to each enumeration constant and are generally native binary types or some APR data type. LOB types are passed with four (4) arguments: payload (char*), length (apr_size_t*), table (char*) and column (char*). Table and column are reserved for future use by Oracle.
int apr_dbd_check_conn | ( | const apr_dbd_driver_t * | driver, | |
apr_pool_t * | pool, | |||
apr_dbd_t * | handle | |||
) |
check_conn: check status of a database connection
driver | - the driver | |
pool | - working pool | |
handle | - the connection to check |
apr_status_t apr_dbd_close | ( | const apr_dbd_driver_t * | driver, | |
apr_dbd_t * | handle | |||
) |
apr_dbd_close: close a connection to a backend
handle | - handle to close | |
driver | - driver struct. |
apr_status_t apr_dbd_datum_get | ( | const apr_dbd_driver_t * | driver, | |
apr_dbd_row_t * | row, | |||
int | col, | |||
apr_dbd_type_e | type, | |||
void * | data | |||
) |
apr_dbd_datum_get: get a binary entry from a row
driver | - the driver | |
row | - row pointer | |
col | - entry number | |
type | - type of data to get | |
data | - pointer to data, allocated by the caller |
const char* apr_dbd_error | ( | const apr_dbd_driver_t * | driver, | |
apr_dbd_t * | handle, | |||
int | errnum | |||
) |
apr_dbd_error: get current error message (if any)
driver | - the driver | |
handle | - the connection | |
errnum | - error code from operation that returned an error |
const char* apr_dbd_escape | ( | const apr_dbd_driver_t * | driver, | |
apr_pool_t * | pool, | |||
const char * | string, | |||
apr_dbd_t * | handle | |||
) |
apr_dbd_escape: escape a string so it is safe for use in query/select
driver | - the driver | |
pool | - pool to alloc the result from | |
string | - the string to escape | |
handle | - the connection |
apr_status_t apr_dbd_get_driver | ( | apr_pool_t * | pool, | |
const char * | name, | |||
const apr_dbd_driver_t ** | driver | |||
) |
apr_dbd_get_driver: get the driver struct for a name
pool | - (process) pool to register cleanup | |
name | - driver name | |
driver | - pointer to driver struct. |
APR_ENOTIMPL for no driver (when DSO not enabled)
APR_EDSOOPEN if DSO driver file can't be opened
APR_ESYMNOTFOUND if the driver file doesn't contain a driver
const char* apr_dbd_get_entry | ( | const apr_dbd_driver_t * | driver, | |
apr_dbd_row_t * | row, | |||
int | col | |||
) |
apr_dbd_get_entry: get an entry from a row
driver | - the driver | |
row | - row pointer | |
col | - entry number |
const char* apr_dbd_get_name | ( | const apr_dbd_driver_t * | driver, | |
apr_dbd_results_t * | res, | |||
int | col | |||
) |
apr_dbd_get_name: get an entry name from a result set
driver | - the driver | |
res | - result set pointer | |
col | - entry number |
int apr_dbd_get_row | ( | const apr_dbd_driver_t * | driver, | |
apr_pool_t * | pool, | |||
apr_dbd_results_t * | res, | |||
apr_dbd_row_t ** | row, | |||
int | rownum | |||
) |
apr_dbd_get_row: get a row from a result set
driver | - the driver | |
pool | - pool to allocate the row | |
res | - result set pointer | |
row | - pointer to row pointer. May point to NULL on entry | |
rownum | - row number (counting from 1), or -1 for "next row". Ignored if random access is not supported. |
apr_status_t apr_dbd_init | ( | apr_pool_t * | pool | ) |
apr_dbd_init: perform once-only initialisation. Call once only.
pool | - pool to register any shutdown cleanups, etc |
const char* apr_dbd_name | ( | const apr_dbd_driver_t * | driver | ) |
apr_dbd_name: get the name of the driver
driver | - the driver |
void* apr_dbd_native_handle | ( | const apr_dbd_driver_t * | driver, | |
apr_dbd_t * | handle | |||
) |
apr_dbd_native_handle: get native database handle of the underlying db
driver | - the driver | |
handle | - apr_dbd handle |
int apr_dbd_num_cols | ( | const apr_dbd_driver_t * | driver, | |
apr_dbd_results_t * | res | |||
) |
apr_dbd_num_cols: get the number of columns in a results set
driver | - the driver | |
res | - result set. |
int apr_dbd_num_tuples | ( | const apr_dbd_driver_t * | driver, | |
apr_dbd_results_t * | res | |||
) |
apr_dbd_num_tuples: get the number of rows in a results set of a synchronous select
driver | - the driver | |
res | - result set. |
apr_status_t apr_dbd_open | ( | const apr_dbd_driver_t * | driver, | |
apr_pool_t * | pool, | |||
const char * | params, | |||
apr_dbd_t ** | handle | |||
) |
apr_dbd_open: open a connection to a backend
pool | - working pool | |
params | - arguments to driver (implementation-dependent) | |
handle | - pointer to handle to return | |
driver | - driver struct. |
APR_EGENERAL if driver exists but connection failed
apr_status_t apr_dbd_open_ex | ( | const apr_dbd_driver_t * | driver, | |
apr_pool_t * | pool, | |||
const char * | params, | |||
apr_dbd_t ** | handle, | |||
const char ** | error | |||
) |
apr_dbd_open_ex: open a connection to a backend
pool | - working pool | |
params | - arguments to driver (implementation-dependent) | |
handle | - pointer to handle to return | |
driver | - driver struct. | |
error | - descriptive error. |
APR_EGENERAL if driver exists but connection failed
SQLite2: the params is split on a colon, with the first part used as the filename and second part converted to an integer and used as file mode.
SQLite3: the params is passed directly to the sqlite3_open() function as a filename to be opened (check SQLite3 documentation for more details).
Oracle: the params can have "user", "pass", "dbname" and "server" keys, each followed by an equal sign and a value. Such key/value pairs can be delimited by space, CR, LF, tab, semicolon, vertical bar or comma.
MySQL: the params can have "host", "port", "user", "pass", "dbname", "sock", "flags" "fldsz", "group" and "reconnect" keys, each followed by an equal sign and a value. Such key/value pairs can be delimited by space, CR, LF, tab, semicolon, vertical bar or comma. For now, "flags" can only recognise CLIENT_FOUND_ROWS (check MySQL manual for details). The value associated with "fldsz" determines maximum amount of memory (in bytes) for each of the fields in the result set of prepared statements. By default, this value is 1 MB. The value associated with "group" determines which group from configuration file to use (see MYSQL_READ_DEFAULT_GROUP option of mysql_options() in MySQL manual). Reconnect is set to 1 by default (i.e. true).
FreeTDS: the params can have "username", "password", "appname", "dbname", "host", "charset", "lang" and "server" keys, each followed by an equal sign and a value.
int apr_dbd_pbquery | ( | const apr_dbd_driver_t * | driver, | |
apr_pool_t * | pool, | |||
apr_dbd_t * | handle, | |||
int * | nrows, | |||
apr_dbd_prepared_t * | statement, | |||
const void ** | args | |||
) |
apr_dbd_pbquery: query using a prepared statement + binary args
driver | - the driver | |
pool | - working pool | |
handle | - the connection | |
nrows | - number of rows affected. | |
statement | - the prepared statement to execute | |
args | - binary args to prepared statement |
int apr_dbd_pbselect | ( | const apr_dbd_driver_t * | driver, | |
apr_pool_t * | pool, | |||
apr_dbd_t * | handle, | |||
apr_dbd_results_t ** | res, | |||
apr_dbd_prepared_t * | statement, | |||
int | random, | |||
const void ** | args | |||
) |
apr_dbd_pbselect: select using a prepared statement + binary args
driver | - the driver | |
pool | - working pool | |
handle | - the connection | |
res | - pointer to query results. May point to NULL on entry | |
statement | - the prepared statement to execute | |
random | - Whether to support random-access to results | |
args | - binary args to prepared statement |
int apr_dbd_pquery | ( | const apr_dbd_driver_t * | driver, | |
apr_pool_t * | pool, | |||
apr_dbd_t * | handle, | |||
int * | nrows, | |||
apr_dbd_prepared_t * | statement, | |||
int | nargs, | |||
const char ** | args | |||
) |
apr_dbd_pquery: query using a prepared statement + args
driver | - the driver | |
pool | - working pool | |
handle | - the connection | |
nrows | - number of rows affected. | |
statement | - the prepared statement to execute | |
nargs | - ignored (for backward compatibility only) | |
args | - args to prepared statement |
int apr_dbd_prepare | ( | const apr_dbd_driver_t * | driver, | |
apr_pool_t * | pool, | |||
apr_dbd_t * | handle, | |||
const char * | query, | |||
const char * | label, | |||
apr_dbd_prepared_t ** | statement | |||
) |
apr_dbd_prepare: prepare a statement
driver | - the driver | |
pool | - pool to alloc the result from | |
handle | - the connection | |
query | - the SQL query | |
label | - A label for the prepared statement. use NULL for temporary prepared statements (eg within a Request in httpd) | |
statement | - statement to prepare. May point to null on entry. |
Here is the full list of format specifiers that this function understands and what they map to in SQL: %hhd (TINY INT), %hhu (UNSIGNED TINY INT), %hd (SHORT), %hu (UNSIGNED SHORT), %d (INT), %u (UNSIGNED INT), %ld (LONG), %lu (UNSIGNED LONG), %lld (LONG LONG), %llu (UNSIGNED LONG LONG), %f (FLOAT, REAL), %lf (DOUBLE PRECISION), %s (VARCHAR), %pDt (TEXT), %pDi (TIME), %pDd (DATE), %pDa (DATETIME), %pDs (TIMESTAMP), %pDz (TIMESTAMP WITH TIME ZONE), %pDb (BLOB), %pDc (CLOB) and %pDn (NULL). Not all databases have support for all these types, so the underlying driver will attempt the "best match" where possible. A % followed by any letter not in the above list will be interpreted as VARCHAR (i.e. %s).
int apr_dbd_pselect | ( | const apr_dbd_driver_t * | driver, | |
apr_pool_t * | pool, | |||
apr_dbd_t * | handle, | |||
apr_dbd_results_t ** | res, | |||
apr_dbd_prepared_t * | statement, | |||
int | random, | |||
int | nargs, | |||
const char ** | args | |||
) |
apr_dbd_pselect: select using a prepared statement + args
driver | - the driver | |
pool | - working pool | |
handle | - the connection | |
res | - pointer to query results. May point to NULL on entry | |
statement | - the prepared statement to execute | |
random | - Whether to support random-access to results | |
nargs | - ignored (for backward compatibility only) | |
args | - args to prepared statement |
int apr_dbd_pvbquery | ( | const apr_dbd_driver_t * | driver, | |
apr_pool_t * | pool, | |||
apr_dbd_t * | handle, | |||
int * | nrows, | |||
apr_dbd_prepared_t * | statement, | |||
... | ||||
) |
apr_dbd_pvbquery: query using a prepared statement + binary args
driver | - the driver | |
pool | - working pool | |
handle | - the connection | |
nrows | - number of rows affected. | |
statement | - the prepared statement to execute | |
... | - varargs list of binary args |
int apr_dbd_pvbselect | ( | const apr_dbd_driver_t * | driver, | |
apr_pool_t * | pool, | |||
apr_dbd_t * | handle, | |||
apr_dbd_results_t ** | res, | |||
apr_dbd_prepared_t * | statement, | |||
int | random, | |||
... | ||||
) |
apr_dbd_pvbselect: select using a prepared statement + binary args
driver | - the driver | |
pool | - working pool | |
handle | - the connection | |
res | - pointer to query results. May point to NULL on entry | |
statement | - the prepared statement to execute | |
random | - Whether to support random-access to results | |
... | - varargs list of binary args |
int apr_dbd_pvquery | ( | const apr_dbd_driver_t * | driver, | |
apr_pool_t * | pool, | |||
apr_dbd_t * | handle, | |||
int * | nrows, | |||
apr_dbd_prepared_t * | statement, | |||
... | ||||
) |
apr_dbd_pvquery: query using a prepared statement + args
driver | - the driver | |
pool | - working pool | |
handle | - the connection | |
nrows | - number of rows affected. | |
statement | - the prepared statement to execute | |
... | - varargs list |
int apr_dbd_pvselect | ( | const apr_dbd_driver_t * | driver, | |
apr_pool_t * | pool, | |||
apr_dbd_t * | handle, | |||
apr_dbd_results_t ** | res, | |||
apr_dbd_prepared_t * | statement, | |||
int | random, | |||
... | ||||
) |
apr_dbd_pvselect: select using a prepared statement + args
driver | - the driver | |
pool | - working pool | |
handle | - the connection | |
res | - pointer to query results. May point to NULL on entry | |
statement | - the prepared statement to execute | |
random | - Whether to support random-access to results | |
... | - varargs list |
int apr_dbd_query | ( | const apr_dbd_driver_t * | driver, | |
apr_dbd_t * | handle, | |||
int * | nrows, | |||
const char * | statement | |||
) |
apr_dbd_query: execute an SQL query that doesn't return a result set
driver | - the driver | |
handle | - the connection | |
nrows | - number of rows affected. | |
statement | - the SQL statement to execute |
int apr_dbd_select | ( | const apr_dbd_driver_t * | driver, | |
apr_pool_t * | pool, | |||
apr_dbd_t * | handle, | |||
apr_dbd_results_t ** | res, | |||
const char * | statement, | |||
int | random | |||
) |
apr_dbd_select: execute an SQL query that returns a result set
driver | - the driver | |
pool | - pool to allocate the result set | |
handle | - the connection | |
res | - pointer to result set pointer. May point to NULL on entry | |
statement | - the SQL statement to execute | |
random | - 1 to support random access to results (seek any row); 0 to support only looping through results in order (async access - faster) |
int apr_dbd_set_dbname | ( | const apr_dbd_driver_t * | driver, | |
apr_pool_t * | pool, | |||
apr_dbd_t * | handle, | |||
const char * | name | |||
) |
apr_dbd_set_dbname: select database name. May be a no-op if not supported.
driver | - the driver | |
pool | - working pool | |
handle | - the connection | |
name | - the database to select |
int apr_dbd_transaction_end | ( | const apr_dbd_driver_t * | driver, | |
apr_pool_t * | pool, | |||
apr_dbd_transaction_t * | trans | |||
) |
apr_dbd_transaction_end: end a transaction (commit on success, rollback on error). May be a no-op.
driver | - the driver | |
handle | - the db connection | |
trans | - the transaction. |
int apr_dbd_transaction_mode_get | ( | const apr_dbd_driver_t * | driver, | |
apr_dbd_transaction_t * | trans | |||
) |
apr_dbd_transaction_mode_get: get the mode of transaction
driver | - the driver | |
trans | - the transaction |
int apr_dbd_transaction_mode_set | ( | const apr_dbd_driver_t * | driver, | |
apr_dbd_transaction_t * | trans, | |||
int | mode | |||
) |
apr_dbd_transaction_mode_set: set the mode of transaction
driver | - the driver | |
trans | - the transaction | |
mode | - new mode of the transaction |
int apr_dbd_transaction_start | ( | const apr_dbd_driver_t * | driver, | |
apr_pool_t * | pool, | |||
apr_dbd_t * | handle, | |||
apr_dbd_transaction_t ** | trans | |||
) |
apr_dbd_transaction_start: start a transaction. May be a no-op.
driver | - the driver | |
pool | - a pool to use for error messages (if any). | |
handle | - the db connection | |
trans | - ptr to a transaction. May be null on entry |