Apache Portable Runtime Utility Library
apr_dbd.h
Go to the documentation of this file.
1/* Licensed to the Apache Software Foundation (ASF) under one or more
2 * contributor license agreements. See the NOTICE file distributed with
3 * this work for additional information regarding copyright ownership.
4 * The ASF licenses this file to You under the Apache License, Version 2.0
5 * (the "License"); you may not use this file except in compliance with
6 * the License. You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/* Overview of what this is and does:
18 * http://www.apache.org/~niq/dbd.html
19 */
20
21#ifndef APR_DBD_H
22#define APR_DBD_H
23
24#include "apu.h"
25#include "apr_pools.h"
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
55typedef enum {
56 APR_DBD_TYPE_NONE,
80
81/* These are opaque structs. Instantiation is up to each backend */
83typedef struct apr_dbd_t apr_dbd_t;
84typedef struct apr_dbd_transaction_t apr_dbd_transaction_t;
85typedef struct apr_dbd_results_t apr_dbd_results_t;
86typedef struct apr_dbd_row_t apr_dbd_row_t;
87typedef struct apr_dbd_prepared_t apr_dbd_prepared_t;
88
93APU_DECLARE(apr_status_t) apr_dbd_init(apr_pool_t *pool);
94
105APU_DECLARE(apr_status_t) apr_dbd_get_driver(apr_pool_t *pool, const char *name,
106 const apr_dbd_driver_t **driver);
107
140APU_DECLARE(apr_status_t) apr_dbd_open_ex(const apr_dbd_driver_t *driver,
141 apr_pool_t *pool, const char *params,
142 apr_dbd_t **handle,
143 const char **error);
144
155APU_DECLARE(apr_status_t) apr_dbd_open(const apr_dbd_driver_t *driver,
156 apr_pool_t *pool, const char *params,
157 apr_dbd_t **handle);
158
165APU_DECLARE(apr_status_t) apr_dbd_close(const apr_dbd_driver_t *driver,
166 apr_dbd_t *handle);
167
168/* apr-function-shaped versions of things */
169
175APU_DECLARE(const char*) apr_dbd_name(const apr_dbd_driver_t *driver);
176
183APU_DECLARE(void*) apr_dbd_native_handle(const apr_dbd_driver_t *driver,
184 apr_dbd_t *handle);
185
193APU_DECLARE(int) apr_dbd_check_conn(const apr_dbd_driver_t *driver, apr_pool_t *pool,
194 apr_dbd_t *handle);
195
204APU_DECLARE(int) apr_dbd_set_dbname(const apr_dbd_driver_t *driver, apr_pool_t *pool,
205 apr_dbd_t *handle, const char *name);
206
221APU_DECLARE(int) apr_dbd_transaction_start(const apr_dbd_driver_t *driver,
222 apr_pool_t *pool,
223 apr_dbd_t *handle,
224 apr_dbd_transaction_t **trans);
225
235APU_DECLARE(int) apr_dbd_transaction_end(const apr_dbd_driver_t *driver,
236 apr_pool_t *pool,
237 apr_dbd_transaction_t *trans);
238
239#define APR_DBD_TRANSACTION_COMMIT 0x00
240#define APR_DBD_TRANSACTION_ROLLBACK 0x01
241#define APR_DBD_TRANSACTION_IGNORE_ERRORS 0x02
249APU_DECLARE(int) apr_dbd_transaction_mode_get(const apr_dbd_driver_t *driver,
250 apr_dbd_transaction_t *trans);
251
259APU_DECLARE(int) apr_dbd_transaction_mode_set(const apr_dbd_driver_t *driver,
260 apr_dbd_transaction_t *trans,
261 int mode);
262
271APU_DECLARE(int) apr_dbd_query(const apr_dbd_driver_t *driver, apr_dbd_t *handle,
272 int *nrows, const char *statement);
273
286APU_DECLARE(int) apr_dbd_select(const apr_dbd_driver_t *driver, apr_pool_t *pool,
287 apr_dbd_t *handle, apr_dbd_results_t **res,
288 const char *statement, int random);
289
296APU_DECLARE(int) apr_dbd_num_cols(const apr_dbd_driver_t *driver,
297 apr_dbd_results_t *res);
298
306APU_DECLARE(int) apr_dbd_num_tuples(const apr_dbd_driver_t *driver,
307 apr_dbd_results_t *res);
308
319APU_DECLARE(int) apr_dbd_get_row(const apr_dbd_driver_t *driver, apr_pool_t *pool,
320 apr_dbd_results_t *res, apr_dbd_row_t **row,
321 int rownum);
322
330APU_DECLARE(const char*) apr_dbd_get_entry(const apr_dbd_driver_t *driver,
331 apr_dbd_row_t *row, int col);
332
340APU_DECLARE(const char*) apr_dbd_get_name(const apr_dbd_driver_t *driver,
341 apr_dbd_results_t *res, int col);
342
343
352APU_DECLARE(const char*) apr_dbd_error(const apr_dbd_driver_t *driver,
353 apr_dbd_t *handle, int errnum);
354
363APU_DECLARE(const char*) apr_dbd_escape(const apr_dbd_driver_t *driver,
364 apr_pool_t *pool, const char *string,
365 apr_dbd_t *handle);
366
395APU_DECLARE(int) apr_dbd_prepare(const apr_dbd_driver_t *driver, apr_pool_t *pool,
396 apr_dbd_t *handle, const char *query,
397 const char *label,
398 apr_dbd_prepared_t **statement);
399
400
412APU_DECLARE(int) apr_dbd_pquery(const apr_dbd_driver_t *driver, apr_pool_t *pool,
413 apr_dbd_t *handle, int *nrows,
414 apr_dbd_prepared_t *statement, int nargs,
415 const char **args);
416
429APU_DECLARE(int) apr_dbd_pselect(const apr_dbd_driver_t *driver, apr_pool_t *pool,
430 apr_dbd_t *handle, apr_dbd_results_t **res,
431 apr_dbd_prepared_t *statement, int random,
432 int nargs, const char **args);
433
444APU_DECLARE_NONSTD(int) apr_dbd_pvquery(const apr_dbd_driver_t *driver,
445 apr_pool_t *pool,
446 apr_dbd_t *handle, int *nrows,
447 apr_dbd_prepared_t *statement, ...);
448
460APU_DECLARE_NONSTD(int) apr_dbd_pvselect(const apr_dbd_driver_t *driver,
461 apr_pool_t *pool, apr_dbd_t *handle,
462 apr_dbd_results_t **res,
463 apr_dbd_prepared_t *statement,
464 int random, ...);
465
476APU_DECLARE(int) apr_dbd_pbquery(const apr_dbd_driver_t *driver,
477 apr_pool_t *pool, apr_dbd_t *handle,
478 int *nrows, apr_dbd_prepared_t *statement,
479 const void **args);
480
492APU_DECLARE(int) apr_dbd_pbselect(const apr_dbd_driver_t *driver,
493 apr_pool_t *pool,
494 apr_dbd_t *handle, apr_dbd_results_t **res,
495 apr_dbd_prepared_t *statement, int random,
496 const void **args);
497
508APU_DECLARE_NONSTD(int) apr_dbd_pvbquery(const apr_dbd_driver_t *driver,
509 apr_pool_t *pool,
510 apr_dbd_t *handle, int *nrows,
511 apr_dbd_prepared_t *statement, ...);
512
524APU_DECLARE_NONSTD(int) apr_dbd_pvbselect(const apr_dbd_driver_t *driver,
525 apr_pool_t *pool, apr_dbd_t *handle,
526 apr_dbd_results_t **res,
527 apr_dbd_prepared_t *statement,
528 int random, ...);
529
539APU_DECLARE(apr_status_t) apr_dbd_datum_get(const apr_dbd_driver_t *driver,
540 apr_dbd_row_t *row, int col,
541 apr_dbd_type_e type, void *data);
542
545#ifdef __cplusplus
546}
547#endif
548
549#endif
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_type_e
Definition: apr_dbd.h:55
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_transaction_start(const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_transaction_t **trans)
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_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_transaction_mode_get(const apr_dbd_driver_t *driver, apr_dbd_transaction_t *trans)
int apr_dbd_num_tuples(const apr_dbd_driver_t *driver, apr_dbd_results_t *res)
const char * apr_dbd_error(const apr_dbd_driver_t *driver, apr_dbd_t *handle, int errnum)
int apr_dbd_query(const apr_dbd_driver_t *driver, apr_dbd_t *handle, int *nrows, const char *statement)
apr_status_t apr_dbd_close(const apr_dbd_driver_t *driver, apr_dbd_t *handle)
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,...)
const char * apr_dbd_name(const apr_dbd_driver_t *driver)
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)
int apr_dbd_transaction_end(const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_transaction_t *trans)
int apr_dbd_num_cols(const apr_dbd_driver_t *driver, apr_dbd_results_t *res)
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_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)
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_transaction_mode_set(const apr_dbd_driver_t *driver, apr_dbd_transaction_t *trans, int mode)
const char * apr_dbd_get_entry(const apr_dbd_driver_t *driver, apr_dbd_row_t *row, int col)
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)
const char * apr_dbd_get_name(const apr_dbd_driver_t *driver, apr_dbd_results_t *res, int col)
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_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,...)
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)
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)
apr_status_t apr_dbd_open(const apr_dbd_driver_t *driver, apr_pool_t *pool, const char *params, apr_dbd_t **handle)
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_set_dbname(const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, const char *name)
@ APR_DBD_TYPE_SHORT
Definition: apr_dbd.h:59
@ APR_DBD_TYPE_FLOAT
Definition: apr_dbd.h:67
@ APR_DBD_TYPE_TIME
Definition: apr_dbd.h:71
@ APR_DBD_TYPE_ULONG
Definition: apr_dbd.h:64
@ APR_DBD_TYPE_STRING
Definition: apr_dbd.h:69
@ APR_DBD_TYPE_INT
Definition: apr_dbd.h:61
@ APR_DBD_TYPE_UINT
Definition: apr_dbd.h:62
@ APR_DBD_TYPE_TIMESTAMP
Definition: apr_dbd.h:74
@ APR_DBD_TYPE_BLOB
Definition: apr_dbd.h:76
@ APR_DBD_TYPE_NULL
Definition: apr_dbd.h:78
@ APR_DBD_TYPE_DATETIME
Definition: apr_dbd.h:73
@ APR_DBD_TYPE_DOUBLE
Definition: apr_dbd.h:68
@ APR_DBD_TYPE_LONGLONG
Definition: apr_dbd.h:65
@ APR_DBD_TYPE_UTINY
Definition: apr_dbd.h:58
@ APR_DBD_TYPE_DATE
Definition: apr_dbd.h:72
@ APR_DBD_TYPE_TINY
Definition: apr_dbd.h:57
@ APR_DBD_TYPE_ULONGLONG
Definition: apr_dbd.h:66
@ APR_DBD_TYPE_LONG
Definition: apr_dbd.h:63
@ APR_DBD_TYPE_CLOB
Definition: apr_dbd.h:77
@ APR_DBD_TYPE_TEXT
Definition: apr_dbd.h:70
@ APR_DBD_TYPE_ZTIMESTAMP
Definition: apr_dbd.h:75
@ APR_DBD_TYPE_USHORT
Definition: apr_dbd.h:60
Definition: apr_dbd_internal.h:43