view deita/deita.h @ 176:fed99fc04e12 hg-web

[HgWeb] Problem with the emscript lol
author MrJuneJune <me@mrjunejune.com>
date Wed, 21 Jan 2026 19:32:08 -0800
parents f3084bca7317
children
line wrap: on
line source

#ifndef DEITA
#define DEITA

#include "dowa/dowa.h"

typedef enum
{
  DEITA_DATABASE_TYPE_SQLITE3 = 0
  // TODO: DEITA_DATABASE_TYPE_POSTGRES, DEITA_DATABASE_TYPE_MYSQL
} Deita_Database_Type;

typedef struct Deita_Connection Deita_Connection;
typedef struct Deita_Result_Set Deita_Result_Set;

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