Mercurial > garten
view db.c @ 20:17b2bcc42d72 default tip
added check for empty result; minor stuff
author | meillo@marmaro.de |
---|---|
date | Sun, 27 Jul 2008 21:34:54 +0200 |
parents | 5937504619f2 |
children |
line wrap: on
line source
#include <stdio.h> #include <stdlib.h> #include "db.h" void db_error(char* info) { fprintf(stderr, "%s%sSQL error: %s\n", (info) ? info : "", (info) ? ": " : "", sqlite3_errmsg(db)); } void db_connect() { if (sqlite3_open(database, &db) != SQLITE_OK) { fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); sqlite3_close(db); exit(1); } } void db_close() { sqlite3_close(db); } sqlite3_stmt* db_query(char* query) { int error; sqlite3_stmt* stmt; error = sqlite3_prepare(db, query, -1, &stmt, NULL); if (error) { fprintf(stderr, "SQL error: %s\n", sqlite3_errmsg(db)); } return stmt; } int db_update(char* query) { int error; sqlite3_stmt* stmt; error = sqlite3_prepare(db, query, -1, &stmt, NULL); if (error || sqlite3_step(stmt) != SQLITE_DONE) { fprintf(stderr, "SQL error: %s\n", sqlite3_errmsg(db)); return 0; } return 1; } int db_rows(sqlite3_stmt* stmt) { int i = 0; sqlite3_reset(stmt); while (sqlite3_step(stmt) == SQLITE_ROW) { i++; } sqlite3_reset(stmt); return i; } int read_time() { int error; sprintf(query, "select time from game;"); stmt = db_query(query); error = sqlite3_step(stmt); if (error == SQLITE_DONE) { fprintf(stderr, "no game available\n"); exit(1); } if (error != SQLITE_ROW) { db_error("read_time"); exit(1); } gametime = sqlite3_column_int(stmt, 0); sqlite3_finalize(stmt); return gametime; }