view db.c @ 18:5937504619f2

rename game.h -> modules.h; added some error handling; and more
author meillo@marmaro.de
date Wed, 23 Jul 2008 17:40:55 +0200
parents 5e6c9260913a
children 17b2bcc42d72
line wrap: on
line source

#include <stdio.h>
#include <stdlib.h>
#include "db.h"



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() {
	sprintf(query, "select time from game;");
	stmt = db_query(query);
	if (sqlite3_step(stmt) != SQLITE_ROW) {
		printf("error: %s\n", sqlite3_errmsg(db));
		exit(1);
	}
	gametime = sqlite3_column_int(stmt, 0);
	sqlite3_finalize(stmt);
	return gametime;
}


void db_error(char* info) {
	fprintf(stderr, "%s%sSQL error: %s\n", (info) ? info : "", (info) ? ": " : "", sqlite3_errmsg(db));
}