00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef APR_DBD_H
00022 #define APR_DBD_H
00023
00024 #include "apu.h"
00025 #include "apr_pools.h"
00026
00027 #ifdef __cplusplus
00028 extern "C" {
00029 #endif
00030
00055 typedef enum {
00056 APR_DBD_TYPE_NONE,
00057 APR_DBD_TYPE_TINY,
00058 APR_DBD_TYPE_UTINY,
00059 APR_DBD_TYPE_SHORT,
00060 APR_DBD_TYPE_USHORT,
00061 APR_DBD_TYPE_INT,
00062 APR_DBD_TYPE_UINT,
00063 APR_DBD_TYPE_LONG,
00064 APR_DBD_TYPE_ULONG,
00065 APR_DBD_TYPE_LONGLONG,
00066 APR_DBD_TYPE_ULONGLONG,
00067 APR_DBD_TYPE_FLOAT,
00068 APR_DBD_TYPE_DOUBLE,
00069 APR_DBD_TYPE_STRING,
00070 APR_DBD_TYPE_TEXT,
00071 APR_DBD_TYPE_TIME,
00072 APR_DBD_TYPE_DATE,
00073 APR_DBD_TYPE_DATETIME,
00074 APR_DBD_TYPE_TIMESTAMP,
00075 APR_DBD_TYPE_ZTIMESTAMP,
00076 APR_DBD_TYPE_BLOB,
00077 APR_DBD_TYPE_CLOB,
00078 APR_DBD_TYPE_NULL
00079 } apr_dbd_type_e;
00080
00081
00082 typedef struct apr_dbd_driver_t apr_dbd_driver_t;
00083 typedef struct apr_dbd_t apr_dbd_t;
00084 typedef struct apr_dbd_transaction_t apr_dbd_transaction_t;
00085 typedef struct apr_dbd_results_t apr_dbd_results_t;
00086 typedef struct apr_dbd_row_t apr_dbd_row_t;
00087 typedef struct apr_dbd_prepared_t apr_dbd_prepared_t;
00088
00093 APU_DECLARE(apr_status_t) apr_dbd_init(apr_pool_t *pool);
00094
00105 APU_DECLARE(apr_status_t) apr_dbd_get_driver(apr_pool_t *pool, const char *name,
00106 const apr_dbd_driver_t **driver);
00107
00143 APU_DECLARE(apr_status_t) apr_dbd_open_ex(const apr_dbd_driver_t *driver,
00144 apr_pool_t *pool, const char *params,
00145 apr_dbd_t **handle,
00146 const char **error);
00147
00158 APU_DECLARE(apr_status_t) apr_dbd_open(const apr_dbd_driver_t *driver,
00159 apr_pool_t *pool, const char *params,
00160 apr_dbd_t **handle);
00161
00168 APU_DECLARE(apr_status_t) apr_dbd_close(const apr_dbd_driver_t *driver,
00169 apr_dbd_t *handle);
00170
00171
00172
00178 APU_DECLARE(const char*) apr_dbd_name(const apr_dbd_driver_t *driver);
00179
00186 APU_DECLARE(void*) apr_dbd_native_handle(const apr_dbd_driver_t *driver,
00187 apr_dbd_t *handle);
00188
00196 APU_DECLARE(int) apr_dbd_check_conn(const apr_dbd_driver_t *driver, apr_pool_t *pool,
00197 apr_dbd_t *handle);
00198
00207 APU_DECLARE(int) apr_dbd_set_dbname(const apr_dbd_driver_t *driver, apr_pool_t *pool,
00208 apr_dbd_t *handle, const char *name);
00209
00224 APU_DECLARE(int) apr_dbd_transaction_start(const apr_dbd_driver_t *driver,
00225 apr_pool_t *pool,
00226 apr_dbd_t *handle,
00227 apr_dbd_transaction_t **trans);
00228
00238 APU_DECLARE(int) apr_dbd_transaction_end(const apr_dbd_driver_t *driver,
00239 apr_pool_t *pool,
00240 apr_dbd_transaction_t *trans);
00241
00242 #define APR_DBD_TRANSACTION_COMMIT 0x00
00243 #define APR_DBD_TRANSACTION_ROLLBACK 0x01
00244 #define APR_DBD_TRANSACTION_IGNORE_ERRORS 0x02
00252 APU_DECLARE(int) apr_dbd_transaction_mode_get(const apr_dbd_driver_t *driver,
00253 apr_dbd_transaction_t *trans);
00254
00262 APU_DECLARE(int) apr_dbd_transaction_mode_set(const apr_dbd_driver_t *driver,
00263 apr_dbd_transaction_t *trans,
00264 int mode);
00265
00274 APU_DECLARE(int) apr_dbd_query(const apr_dbd_driver_t *driver, apr_dbd_t *handle,
00275 int *nrows, const char *statement);
00276
00289 APU_DECLARE(int) apr_dbd_select(const apr_dbd_driver_t *driver, apr_pool_t *pool,
00290 apr_dbd_t *handle, apr_dbd_results_t **res,
00291 const char *statement, int random);
00292
00299 APU_DECLARE(int) apr_dbd_num_cols(const apr_dbd_driver_t *driver,
00300 apr_dbd_results_t *res);
00301
00309 APU_DECLARE(int) apr_dbd_num_tuples(const apr_dbd_driver_t *driver,
00310 apr_dbd_results_t *res);
00311
00322 APU_DECLARE(int) apr_dbd_get_row(const apr_dbd_driver_t *driver, apr_pool_t *pool,
00323 apr_dbd_results_t *res, apr_dbd_row_t **row,
00324 int rownum);
00325
00333 APU_DECLARE(const char*) apr_dbd_get_entry(const apr_dbd_driver_t *driver,
00334 apr_dbd_row_t *row, int col);
00335
00343 APU_DECLARE(const char*) apr_dbd_get_name(const apr_dbd_driver_t *driver,
00344 apr_dbd_results_t *res, int col);
00345
00346
00355 APU_DECLARE(const char*) apr_dbd_error(const apr_dbd_driver_t *driver,
00356 apr_dbd_t *handle, int errnum);
00357
00366 APU_DECLARE(const char*) apr_dbd_escape(const apr_dbd_driver_t *driver,
00367 apr_pool_t *pool, const char *string,
00368 apr_dbd_t *handle);
00369
00398 APU_DECLARE(int) apr_dbd_prepare(const apr_dbd_driver_t *driver, apr_pool_t *pool,
00399 apr_dbd_t *handle, const char *query,
00400 const char *label,
00401 apr_dbd_prepared_t **statement);
00402
00403
00415 APU_DECLARE(int) apr_dbd_pquery(const apr_dbd_driver_t *driver, apr_pool_t *pool,
00416 apr_dbd_t *handle, int *nrows,
00417 apr_dbd_prepared_t *statement, int nargs,
00418 const char **args);
00419
00432 APU_DECLARE(int) apr_dbd_pselect(const apr_dbd_driver_t *driver, apr_pool_t *pool,
00433 apr_dbd_t *handle, apr_dbd_results_t **res,
00434 apr_dbd_prepared_t *statement, int random,
00435 int nargs, const char **args);
00436
00447 APU_DECLARE_NONSTD(int) apr_dbd_pvquery(const apr_dbd_driver_t *driver,
00448 apr_pool_t *pool,
00449 apr_dbd_t *handle, int *nrows,
00450 apr_dbd_prepared_t *statement, ...);
00451
00463 APU_DECLARE_NONSTD(int) apr_dbd_pvselect(const apr_dbd_driver_t *driver,
00464 apr_pool_t *pool, apr_dbd_t *handle,
00465 apr_dbd_results_t **res,
00466 apr_dbd_prepared_t *statement,
00467 int random, ...);
00468
00479 APU_DECLARE(int) apr_dbd_pbquery(const apr_dbd_driver_t *driver,
00480 apr_pool_t *pool, apr_dbd_t *handle,
00481 int *nrows, apr_dbd_prepared_t *statement,
00482 const void **args);
00483
00495 APU_DECLARE(int) apr_dbd_pbselect(const apr_dbd_driver_t *driver,
00496 apr_pool_t *pool,
00497 apr_dbd_t *handle, apr_dbd_results_t **res,
00498 apr_dbd_prepared_t *statement, int random,
00499 const void **args);
00500
00511 APU_DECLARE_NONSTD(int) apr_dbd_pvbquery(const apr_dbd_driver_t *driver,
00512 apr_pool_t *pool,
00513 apr_dbd_t *handle, int *nrows,
00514 apr_dbd_prepared_t *statement, ...);
00515
00527 APU_DECLARE_NONSTD(int) apr_dbd_pvbselect(const apr_dbd_driver_t *driver,
00528 apr_pool_t *pool, apr_dbd_t *handle,
00529 apr_dbd_results_t **res,
00530 apr_dbd_prepared_t *statement,
00531 int random, ...);
00532
00542 APU_DECLARE(apr_status_t) apr_dbd_datum_get(const apr_dbd_driver_t *driver,
00543 apr_dbd_row_t *row, int col,
00544 apr_dbd_type_e type, void *data);
00545
00548 #ifdef __cplusplus
00549 }
00550 #endif
00551
00552 #endif