From 3708b21fb020716cbe7e11e8c23a4358b89022a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Stensg=C3=A5rd?= Date: Sun, 6 Jul 2025 17:32:37 +0200 Subject: select_booking: SELECT from event --- select_booking.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 select_booking.c (limited to 'select_booking.c') diff --git a/select_booking.c b/select_booking.c new file mode 100644 index 0000000..4eaadcb --- /dev/null +++ b/select_booking.c @@ -0,0 +1,42 @@ +#include +#include +#include + +#include "sqlite/sqlite3.h" + +static const char *DATABASE = "booking.db"; + +int +main(void) +{ + sqlite3 *db; + if (sqlite3_open(DATABASE, &db)) + errx(1, "sqlite3_open: %s", sqlite3_errmsg(db)); + + const char *sql = "SELECT " + "datetime(start, 'unixepoch'), " + "datetime(end, 'unixepoch'), " + "(end-start)/60/60, " + "summary " + "FROM event " + "WHERE unixepoch()-6*3600 < start " + "AND summary IS NOT NULL " + "ORDER BY start"; + sqlite3_stmt *stmt = NULL; + if (sqlite3_prepare_v2(db, sql, -1, &stmt, NULL)) + errx(1, "sqlite3_prepare_v2: %s", sqlite3_errmsg(db)); + + for (;;) { + int step = sqlite3_step(stmt); + if (SQLITE_DONE == step) + break; + if (SQLITE_ROW != step) + errx(1, "sqlite3_step: %s", sqlite3_errmsg(db)); + + const unsigned char *summary = sqlite3_column_text(stmt, 3); + assert(summary); + printf("%s\n", summary); + } + + sqlite3_close(db); +} -- cgit v1.2.3