/* sqlite.c -- Generic functions to simplify SQLite3 queries * * * */ #ifndef SQLITE_H_ # define SQLITE_H_ #include typedef struct __sqlite_header { unsigned int fieldid; char *name; // char *type; size_t namelength; size_t maxvaluelength; struct __sqlite_header *next; struct __sqlite_header *prev; } _sqlite_header; typedef struct __sqlite_tuples { unsigned int tupleid; unsigned int fieldid; char *value; size_t length; _sqlite_header *header; struct __sqlite_tuples *nextfield; struct __sqlite_tuples *prevfield; struct __sqlite_tuples *nexttuple; struct __sqlite_tuples *prevtuple; } _sqlite_tuples; typedef struct __sqlite_dbresult { // start of the chains _sqlite_tuples *tuples; _sqlite_header *headerrec; size_t num_tuples; size_t num_fields; // Used for search functions _sqlite_tuples *srch_tuples; _sqlite_header *srch_headerrec; } dbresult; #ifndef SQLITE_C #define sqlite_free_results(r) { _sqlite_free_results(r); r = NULL; } void _sqlite_free_results(dbresult *); dbresult *sqlite_query(eurephiaCTX *ctx, const char *, ...); char *sqlite_get_value(dbresult *res, int, int); void sqlite_dump_result(FILE *, dbresult *); int sqlite_get_numtuples(dbresult *); #endif #endif /* !SQLITE_H_ */