1 #ifndef _mdbsql_h_
2 #define _mdbsql_h_
3 
4 #ifdef __cplusplus
5   extern "C" {
6 #endif
7 
8 #include <stdio.h>
9 #include <string.h>
10 #include <glib.h>
11 #include <mdbtools.h>
12 
13 typedef struct {
14 	MdbHandle *mdb;
15 	int all_columns;
16 	unsigned int num_columns;
17 	GPtrArray *columns;
18 	unsigned int num_tables;
19 	GPtrArray *tables;
20 	MdbTableDef *cur_table;
21 	MdbSargNode *sarg_tree;
22 	GList *sarg_stack;
23 	/* FIX ME */
24 	char *bound_values[256];
25 	unsigned char *kludge_ttable_pg;
26 	long max_rows;
27 } MdbSQL;
28 
29 typedef struct {
30 	char *name;
31 	int  disp_size;
32 	void *bind_addr;   /* if !NULL then cp parameter to here */
33 	int  bind_type;
34 	int  *bind_len;
35 	int  bind_max;
36 } MdbSQLColumn;
37 
38 typedef struct {
39 	char *name;
40 	char *alias;
41 } MdbSQLTable;
42 
43 typedef struct {
44 	char *col_name;
45 	MdbSarg *sarg;
46 } MdbSQLSarg;
47 
48 extern char *g_input_ptr;
49 
50 #undef YY_INPUT
51 #define YY_INPUT(b, r, ms) (r = mdb_sql_yyinput(b, ms));
52 
53 extern MdbSQL *_mdb_sql(MdbSQL *sql);
54 extern MdbSQL *mdb_sql_init();
55 extern MdbSQLSarg *mdb_sql_alloc_sarg();
56 extern MdbHandle *mdb_sql_open(MdbSQL *sql, char *db_name);
57 extern int mdb_sql_add_sarg(MdbSQL *sql, char *col_name, int op, char *constant);
58 extern void mdb_sql_all_columns(MdbSQL *sql);
59 extern int mdb_sql_add_column(MdbSQL *sql, char *column_name);
60 extern int mdb_sql_add_table(MdbSQL *sql, char *table_name);
61 extern void mdb_sql_dump(MdbSQL *sql);
62 extern void mdb_sql_exit(MdbSQL *sql);
63 extern void mdb_sql_reset(MdbSQL *sql);
64 extern void mdb_sql_listtables(MdbSQL *sql);
65 extern void mdb_sql_select(MdbSQL *sql);
66 extern void mdbsql_bind_all(MdbSQL *sql);
67 extern void mdb_sql_dump_node(MdbSargNode *node, int level);
68 extern void mdb_sql_close(MdbSQL *sql);
69 extern void mdb_sql_add_or(MdbSQL *sql);
70 extern void mdb_sql_add_and(MdbSQL *sql);
71 extern void mdb_sql_listtables(MdbSQL *sql);
72 extern void mdb_sql_add_not(MdbSQL *sql);
73 extern void mdb_sql_describe_table(MdbSQL *sql);
74 extern MdbSQL* mdb_sql_run_query (MdbSQL*, const gchar*);
75 extern void mdb_sql_set_maxrow(MdbSQL *sql, int maxrow);
76 extern int mdb_sql_eval_expr(MdbSQL *sql, char *const1, int op, char *const2);
77 extern void mdb_sql_bind_all(MdbSQL *sql);
78 extern int mdb_sql_fetch_row(MdbSQL *sql, MdbTableDef *table);
79 extern int mdb_sql_add_temp_col(MdbSQL *sql, MdbTableDef *ttable, int col_num, char *name, int col_type, int col_size, int is_fixed);
80 extern void mdb_sql_bind_column(MdbSQL *sql, int colnum, char *varaddr, int *len_ptr);
81 
82 #ifdef __cplusplus
83   }
84 #endif
85 
86 #endif
87