File: sqlbox_sql.h

package info (click to toggle)
kannel 1.4.5-22
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 16,284 kB
  • sloc: ansic: 105,659; sh: 32,211; xml: 20,360; php: 1,103; perl: 711; makefile: 583; yacc: 548; awk: 133; python: 122; javascript: 27; pascal: 3
file content (64 lines) | stat: -rw-r--r-- 1,661 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#ifndef SQLBOX_SQL_H
#define SQLBOX_SQL_H
#include "gwlib/gwlib.h"
#include "gw/msg.h"
#include "sqlbox_mssql.h"
#include "sqlbox_mysql.h"
#include "sqlbox_oracle.h"
#include "sqlbox_pgsql.h"
#include "sqlbox_sdb.h"
#include "sqlbox_sqlite.h"
#include "sqlbox_sqlite3.h"

struct server_type {
    Octstr *type;
    void (*sql_enter) (Cfg *);
    void (*sql_leave) ();
    Msg *(*sql_fetch_msg) ();
    void (*sql_save_msg) (Msg *, Octstr *);
    int  (*sql_fetch_msg_list) (List *, long);
    void (*sql_save_list) (List *, Octstr *, int);
};

struct sqlbox_db_queries {
    char *create_insert_table;
    char *create_insert_sequence;
    char *create_insert_trigger;
    char *create_log_table;
    char *create_log_sequence;
    char *create_log_trigger;
    char *select_query;
    char *delete_query;
    char *insert_query;
};

struct server_type *sqlbox_init_sql(Cfg *cfg);

#ifndef sqlbox_sql_c
extern
#endif
struct server_type *sql_type;

#define gw_sql_fetch_msg sql_type->sql_fetch_msg
#define gw_sql_fetch_msg_list sql_type->sql_fetch_msg_list
#define gw_sql_save_list sql_type->sql_save_list
#define gw_sql_save_msg(message, table) \
    do { \
        octstr_url_encode(message->sms.msgdata); \
        octstr_url_encode(message->sms.udhdata); \
        sql_type->sql_save_msg(message, table); \
    } while (0)
#define gw_sql_enter sql_type->sql_enter
#define gw_sql_leave sql_type->sql_leave

/* Macro to run the queries to create tables */
#define sqlbox_run_query(query, table) \
if (query != NULL) { \
    sql = octstr_format(query, table, table, table); \
    sql_update(pc, sql); \
    octstr_destroy(sql); \
}

#undef SQLBOX_TRACE

#endif