diff options
| author | Martin Stensgård <mastensg@mastensg.net> | 2025-07-06 17:32:37 +0200 |
|---|---|---|
| committer | Martin Stensgård <mastensg@mastensg.net> | 2025-07-06 17:32:37 +0200 |
| commit | 3708b21fb020716cbe7e11e8c23a4358b89022a6 (patch) | |
| tree | f4ad3f2e640c5ec74837700f3d8b81eaaf5edc15 /select_booking.c | |
| parent | ffaa64a28f6bbc4d3b5dfa87dfd75e1117673e3b (diff) | |
select_booking: SELECT from event
Diffstat (limited to 'select_booking.c')
| -rw-r--r-- | select_booking.c | 42 |
1 files changed, 42 insertions, 0 deletions
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 <assert.h> +#include <err.h> +#include <stdio.h> + +#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); +} |
