meillo@15: #include meillo@15: #include meillo@15: #include "db.h" meillo@15: meillo@15: meillo@15: meillo@15: void db_connect() { meillo@15: if (sqlite3_open(database, &db) != SQLITE_OK) { meillo@15: fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); meillo@15: sqlite3_close(db); meillo@15: exit(1); meillo@15: } meillo@15: } meillo@15: meillo@15: meillo@15: void db_close() { meillo@15: sqlite3_close(db); meillo@15: } meillo@15: meillo@15: meillo@15: sqlite3_stmt* db_query(char* query) { meillo@15: int error; meillo@15: sqlite3_stmt* stmt; meillo@15: meillo@15: error = sqlite3_prepare(db, query, -1, &stmt, NULL); meillo@15: if (error) { meillo@15: fprintf(stderr, "SQL error: %s\n", sqlite3_errmsg(db)); meillo@15: } meillo@15: return stmt; meillo@15: } meillo@15: meillo@15: meillo@15: meillo@15: int db_update(char* query) { meillo@15: int error; meillo@15: sqlite3_stmt* stmt; meillo@15: meillo@15: error = sqlite3_prepare(db, query, -1, &stmt, NULL); meillo@15: if (error || sqlite3_step(stmt) != SQLITE_DONE) { meillo@15: fprintf(stderr, "SQL error: %s\n", sqlite3_errmsg(db)); meillo@15: return 0; meillo@15: } meillo@15: return 1; meillo@15: } meillo@15: meillo@15: meillo@17: int db_rows(sqlite3_stmt* stmt) { meillo@17: int i = 0; meillo@17: meillo@17: sqlite3_reset(stmt); meillo@17: while (sqlite3_step(stmt) == SQLITE_ROW) { meillo@17: i++; meillo@17: } meillo@17: sqlite3_reset(stmt); meillo@17: return i; meillo@17: } meillo@17: meillo@17: meillo@15: int read_time() { meillo@15: sprintf(query, "select time from game;"); meillo@16: stmt = db_query(query); meillo@15: if (sqlite3_step(stmt) != SQLITE_ROW) { meillo@15: printf("error: %s\n", sqlite3_errmsg(db)); meillo@15: exit(1); meillo@15: } meillo@15: gametime = sqlite3_column_int(stmt, 0); meillo@15: sqlite3_finalize(stmt); meillo@15: return gametime; meillo@15: } meillo@15: meillo@17: meillo@17: void db_error(char* info) { meillo@17: fprintf(stderr, "%s%sSQL error: %s\n", (info) ? info : "", (info) ? ": " : "", sqlite3_errmsg(db)); meillo@17: }