00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef DBASE_H
00027 #define DBASE_H
00028
00029 #include <sqlite3.h>
00030
00031 #include "../../lib/srdb1/db_pool.h"
00032 #include "../../lib/srdb1/db_con.h"
00033 #include "../../lib/srdb1/db_res.h"
00034 #include "../../lib/srdb1/db_key.h"
00035 #include "../../lib/srdb1/db_op.h"
00036 #include "../../lib/srdb1/db_val.h"
00037
00038 #define DB_SQLITE_MAX_BINDS 64
00039
00040 struct sqlite_connection {
00041 struct pool_con hdr;
00042
00043 sqlite3 *conn;
00044 int bindpos;
00045
00046 sqlite3_stmt *stmt;
00047 const db_val_t *bindarg[DB_SQLITE_MAX_BINDS];
00048 };
00049
00050 #define CON_SQLITE(db_con) ((struct sqlite_connection *) db_con->tail)
00051
00052 db1_con_t* db_sqlite_init(const str* _sqlurl);
00053 void db_sqlite_close(db1_con_t* _h);
00054
00055 int db_sqlite_free_result(db1_con_t* _h, db1_res_t* _r);
00056
00057 int db_sqlite_query(const db1_con_t* _h, const db_key_t* _k, const db_op_t* _op,
00058 const db_val_t* _v, const db_key_t* _c, int _n, int _nc,
00059 const db_key_t _o, db1_res_t** _r);
00060 int db_sqlite_insert(const db1_con_t* _h, const db_key_t* _k, const db_val_t* _v,
00061 int _n);
00062 int db_sqlite_delete(const db1_con_t* _h, const db_key_t* _k, const db_op_t* _o,
00063 const db_val_t* _v, int _n);
00064 int db_sqlite_update(const db1_con_t* _h, const db_key_t* _k, const db_op_t* _o,
00065 const db_val_t* _v, const db_key_t* _uk, const db_val_t* _uv,
00066 int _n, int _un);
00067 int db_sqlite_raw_query(const db1_con_t* _h, const str* _s, db1_res_t** _r);
00068
00069 int db_sqlite_use_table(db1_con_t* _h, const str* _t);
00070
00071
00072 #endif