00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00043 #ifndef SQL_BUILDER_H
00044 #define SQL_BUILDER_H
00045
00046 #include <time.h>
00047
00048 #define SQL_DBL_FMT "%24.18g"
00049
00050 typedef enum {
00052 SQL_UPDATE = 'm',
00054 SQL_INSERT = 'a',
00056 SQL_SELECT = 'q',
00058 SQL_DELETE = 'd'
00059 } SqlBuilderQType;
00060
00061 typedef struct SqlBuilder_s SqlBuilder;
00062
00069 SqlBuilder * sql_builder_new(void);
00070 SqlBuilder * sql_builder_copy (SqlBuilder *);
00071 void sql_builder_destroy (SqlBuilder *);
00072
00082 void sql_builder_table (SqlBuilder *b,
00083 const gchar *tablename,
00084 SqlBuilderQType qtype);
00085
00090 void sql_builder_set_str (SqlBuilder *b, const gchar *tag, const gchar *val);
00091 void sql_builder_set_char (SqlBuilder *b, const gchar *tag, gchar val);
00092 void sql_builder_set_date (SqlBuilder *b, const gchar *tag, time_t val);
00093 void sql_builder_set_int64 (SqlBuilder *b, const gchar *tag, gint64 val);
00094 void sql_builder_set_int32 (SqlBuilder *b, const gchar *tag, gint32 val);
00095 void sql_builder_set_double(SqlBuilder *b, const gchar *tag, gdouble val);
00096
00103 void sql_builder_where_str (SqlBuilder *b, const gchar *tag,
00104 const gchar *val, const gchar *op);
00105 void sql_builder_where_int32 (SqlBuilder *b, const gchar *tag,
00106 gint32 val, const gchar *op);
00107
00116 const gchar *sql_builder_query (SqlBuilder *b);
00117
00121 #endif
00122