garten
diff db.c @ 20:17b2bcc42d72
added check for empty result; minor stuff
author | meillo@marmaro.de |
---|---|
date | Sun, 27 Jul 2008 21:34:54 +0200 |
parents | 5937504619f2 |
children |
line diff
1.1 --- a/db.c Wed Jul 23 17:44:15 2008 +0200 1.2 +++ b/db.c Sun Jul 27 21:34:54 2008 +0200 1.3 @@ -4,6 +4,11 @@ 1.4 1.5 1.6 1.7 +void db_error(char* info) { 1.8 + fprintf(stderr, "%s%sSQL error: %s\n", (info) ? info : "", (info) ? ": " : "", sqlite3_errmsg(db)); 1.9 +} 1.10 + 1.11 + 1.12 void db_connect() { 1.13 if (sqlite3_open(database, &db) != SQLITE_OK) { 1.14 fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); 1.15 @@ -57,18 +62,20 @@ 1.16 1.17 1.18 int read_time() { 1.19 + int error; 1.20 + 1.21 sprintf(query, "select time from game;"); 1.22 stmt = db_query(query); 1.23 - if (sqlite3_step(stmt) != SQLITE_ROW) { 1.24 - printf("error: %s\n", sqlite3_errmsg(db)); 1.25 + error = sqlite3_step(stmt); 1.26 + if (error == SQLITE_DONE) { 1.27 + fprintf(stderr, "no game available\n"); 1.28 + exit(1); 1.29 + } 1.30 + if (error != SQLITE_ROW) { 1.31 + db_error("read_time"); 1.32 exit(1); 1.33 } 1.34 gametime = sqlite3_column_int(stmt, 0); 1.35 sqlite3_finalize(stmt); 1.36 return gametime; 1.37 } 1.38 - 1.39 - 1.40 -void db_error(char* info) { 1.41 - fprintf(stderr, "%s%sSQL error: %s\n", (info) ? info : "", (info) ? ": " : "", sqlite3_errmsg(db)); 1.42 -}