From ffb26ebefc9c6f5482ab2cbd65b700510af9775b Mon Sep 17 00:00:00 2001 From: xavi Date: Sun, 25 Aug 2024 17:43:54 -0700 Subject: [PATCH] Added rough draft of view() --- src/dodo.c | 97 ++++++++++++++++++++++++++++++++++++++++++-------- src/x_curses.h | 4 ++- 2 files changed, 86 insertions(+), 15 deletions(-) diff --git a/src/dodo.c b/src/dodo.c index ee12e43..bb0e7e9 100644 --- a/src/dodo.c +++ b/src/dodo.c @@ -4,6 +4,15 @@ #include "x_string.h" #include "x_curses.h" +int checksqlerr(int rc, char *errmsg){ + if( rc!=SQLITE_OK ){ + fprintf(stderr, "SQL error: %s\n", errmsg); + sqlite3_free(errmsg); + return 1; + } + return 0; +} + int opendb(sqlite3 **db, char* filename){ int rc = 0; @@ -29,6 +38,39 @@ int callback(void *NotUsed, int argc, char **argv, char **azColName){ return 0; } +int get_num_rows_sql_helper(void *NotUsed, int argc, char **argv, char **azColName){ + + if ( !argv[0] ){ + return 1; + } + + printf("%s\n", argv[0]); + return 0; +} + + +// Get number of tasks from tasks table give status +// TODO: Gotta make the error checking not broken +int get_num_rows(sqlite3 *db, char* status, char *errmsg){ + char *sql_query = "SELECT COUNT(*) FROM tasks WHERE status = ?"; + sqlite3_stmt *out_stmt; + int rc = 0; + //rc = sqlite3_exec(db, sql_query, get_num_rows_sql_helper, 0, &errmsg); + //checksqlerr(rc, errmsg); + + rc = sqlite3_prepare_v2(db, sql_query, -1, &out_stmt, NULL); + checksqlerr(rc, errmsg); + + rc = sqlite3_bind_text(out_stmt, 1, status, -1, SQLITE_STATIC); + checksqlerr(rc, errmsg); + + while ( rc = sqlite3_step(out_stmt) == SQLITE_ROW ){ + return sqlite3_column_int(out_stmt, 0); + } + + return 1; +} + int print_select(void *NotUsed, int argc, char **argv, char **azColName){ int i = 0; for(i=0; i