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