view deita/deita.h @ 159:05cf9467a1c3

[Postdog] Updated to use text area that can handle like html text area.
author June Park <parkjune1995@gmail.com>
date Wed, 14 Jan 2026 08:56:33 -0800
parents ae6a88e6e484
children f3084bca7317
line wrap: on
line source

#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