Mercurial
diff deita/deita.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.h Wed Dec 31 11:20:08 2025 -0800 @@ -0,0 +1,101 @@ +#ifndef DEITA +#define DEITA + +#include "dowa/dowa.h" + +// Database types +typedef enum +{ + DEITA_DATABASE_TYPE_SQLITE3 = 0 + // Future: DEITA_DATABASE_TYPE_POSTGRES, DEITA_DATABASE_TYPE_MYSQL +} Deita_Database_Type; + +// Connection handle (opaque) +typedef struct Deita_Connection Deita_Connection; + +// Result set (opaque) +typedef struct Deita_Result_Set Deita_Result_Set; + +// Column value type +typedef enum +{ + DEITA_COLUMN_TYPE_NULL = 0, + DEITA_COLUMN_TYPE_INTEGER, + DEITA_COLUMN_TYPE_REAL, + DEITA_COLUMN_TYPE_TEXT, + DEITA_COLUMN_TYPE_BLOB +} Deita_Column_Type; + +// --- Connection Management --- // + +extern Deita_Connection* Deita_Connection_Create( + Deita_Database_Type database_type, + const char *connection_string +); + +extern void Deita_Connection_Close(Deita_Connection *p_connection); + +extern boolean Deita_Connection_Is_Open(Deita_Connection *p_connection); + +// --- Query Execution --- // + +extern Deita_Result_Set* Deita_Query_Execute( + Deita_Connection *p_connection, + const char *query, + Dowa_Arena *p_arena +); + +extern Deita_Result_Set* Deita_Query_Execute_Prepared( + Deita_Connection *p_connection, + const char *query, + int32 parameter_count, + const char **parameter_values, + Dowa_Arena *p_arena +); + +extern int32 Deita_Query_Execute_Update( + Deita_Connection *p_connection, + const char *query +); + +extern int32 Deita_Query_Execute_Update_Prepared( + Deita_Connection *p_connection, + const char *query, + int32 parameter_count, + const char **parameter_values +); + +// --- Result Set Access --- // + +extern boolean Deita_Result_Set_Next(Deita_Result_Set *p_result_set); + +extern int32 Deita_Result_Set_Get_Column_Count(Deita_Result_Set *p_result_set); + +extern const char* Deita_Result_Set_Get_Column_Name( + Deita_Result_Set *p_result_set, + int32 column_index +); + +extern Deita_Column_Type Deita_Result_Set_Get_Column_Type( + Deita_Result_Set *p_result_set, + int32 column_index +); + +extern const char* Deita_Result_Set_Get_Text( + Deita_Result_Set *p_result_set, + int32 column_index +); + +extern int64 Deita_Result_Set_Get_Integer( + Deita_Result_Set *p_result_set, + int32 column_index +); + +extern double Deita_Result_Set_Get_Real( + Deita_Result_Set *p_result_set, + int32 column_index +); + +extern void Deita_Result_Set_Free(Deita_Result_Set *p_result_set); + +#endif