Mercurial
diff deita/deita_internal.h @ 75:ae6a88e6e484
[Deita] Simple DB connection lib.
| author | June Park <parkjune1995@gmail.com> |
|---|---|
| date | Wed, 31 Dec 2025 11:20:08 -0800 |
| parents | |
| children | f3084bca7317 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deita/deita_internal.h Wed Dec 31 11:20:08 2025 -0800 @@ -0,0 +1,63 @@ +#ifndef DEITA_INTERNAL +#define DEITA_INTERNAL + +#include <sqlite3.h> +#include "deita.h" + +struct Deita_Connection +{ + Deita_Database_Type database_type; + void *native_handle; + boolean is_open; +}; + +struct Deita_Result_Set +{ + Deita_Database_Type database_type; + void *native_result; + int32 column_count; + boolean has_data; + boolean is_done; +}; + +// SQLite3-specific functions (implemented in d_sqlite.c) +extern Deita_Connection* deita__sqlite_connection_create(const char *connection_string); +extern void deita__sqlite_connection_close(Deita_Connection *p_connection); +extern boolean deita__sqlite_connection_is_open(Deita_Connection *p_connection); + +extern Deita_Result_Set* deita__sqlite_query_execute( + Deita_Connection *p_connection, + const char *query, + Dowa_Arena *p_arena +); + +extern Deita_Result_Set* deita__sqlite_query_execute_prepared( + Deita_Connection *p_connection, + const char *query, + int32 parameter_count, + const char **parameter_values, + Dowa_Arena *p_arena +); + +extern int32 deita__sqlite_query_execute_update( + Deita_Connection *p_connection, + const char *query +); + +extern int32 deita__sqlite_query_execute_update_prepared( + Deita_Connection *p_connection, + const char *query, + int32 parameter_count, + const char **parameter_values +); + +extern boolean deita__sqlite_result_set_next(Deita_Result_Set *p_result_set); +extern int32 deita__sqlite_result_set_get_column_count(Deita_Result_Set *p_result_set); +extern const char* deita__sqlite_result_set_get_column_name(Deita_Result_Set *p_result_set, int32 column_index); +extern Deita_Column_Type deita__sqlite_result_set_get_column_type(Deita_Result_Set *p_result_set, int32 column_index); +extern const char* deita__sqlite_result_set_get_text(Deita_Result_Set *p_result_set, int32 column_index); +extern int64 deita__sqlite_result_set_get_integer(Deita_Result_Set *p_result_set, int32 column_index); +extern double deita__sqlite_result_set_get_real(Deita_Result_Set *p_result_set, int32 column_index); +extern void deita__sqlite_result_set_free(Deita_Result_Set *p_result_set); + +#endif