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