annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
1 #include <stdio.h>
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
2 #include <stdlib.h>
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
3 #include "db.h"
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
4
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
5
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
6
20
17b2bcc42d72 added check for empty result; minor stuff
meillo@marmaro.de
parents: 18
diff changeset
7 void db_error(char* info) {
17b2bcc42d72 added check for empty result; minor stuff
meillo@marmaro.de
parents: 18
diff changeset
8 fprintf(stderr, "%s%sSQL error: %s\n", (info) ? info : "", (info) ? ": " : "", sqlite3_errmsg(db));
17b2bcc42d72 added check for empty result; minor stuff
meillo@marmaro.de
parents: 18
diff changeset
9 }
17b2bcc42d72 added check for empty result; minor stuff
meillo@marmaro.de
parents: 18
diff changeset
10
17b2bcc42d72 added check for empty result; minor stuff
meillo@marmaro.de
parents: 18
diff changeset
11
15
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
12 void db_connect() {
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
13 if (sqlite3_open(database, &db) != SQLITE_OK) {
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
14 fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
15 sqlite3_close(db);
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
16 exit(1);
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
17 }
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
18 }
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
19
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
20
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
21 void db_close() {
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
22 sqlite3_close(db);
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
23 }
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
24
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
25
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
26 sqlite3_stmt* db_query(char* query) {
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
27 int error;
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
28 sqlite3_stmt* stmt;
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
29
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
30 error = sqlite3_prepare(db, query, -1, &stmt, NULL);
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
31 if (error) {
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
32 fprintf(stderr, "SQL error: %s\n", sqlite3_errmsg(db));
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
33 }
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
34 return stmt;
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
35 }
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
36
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
37
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
38
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
39 int db_update(char* query) {
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
40 int error;
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
41 sqlite3_stmt* stmt;
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
42
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
43 error = sqlite3_prepare(db, query, -1, &stmt, NULL);
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
44 if (error || sqlite3_step(stmt) != SQLITE_DONE) {
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
45 fprintf(stderr, "SQL error: %s\n", sqlite3_errmsg(db));
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
46 return 0;
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
47 }
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
48 return 1;
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
49 }
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
50
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
51
17
5e6c9260913a lots of cleanups and small fixes
meillo@marmaro.de
parents: 16
diff changeset
52 int db_rows(sqlite3_stmt* stmt) {
5e6c9260913a lots of cleanups and small fixes
meillo@marmaro.de
parents: 16
diff changeset
53 int i = 0;
5e6c9260913a lots of cleanups and small fixes
meillo@marmaro.de
parents: 16
diff changeset
54
5e6c9260913a lots of cleanups and small fixes
meillo@marmaro.de
parents: 16
diff changeset
55 sqlite3_reset(stmt);
5e6c9260913a lots of cleanups and small fixes
meillo@marmaro.de
parents: 16
diff changeset
56 while (sqlite3_step(stmt) == SQLITE_ROW) {
5e6c9260913a lots of cleanups and small fixes
meillo@marmaro.de
parents: 16
diff changeset
57 i++;
5e6c9260913a lots of cleanups and small fixes
meillo@marmaro.de
parents: 16
diff changeset
58 }
5e6c9260913a lots of cleanups and small fixes
meillo@marmaro.de
parents: 16
diff changeset
59 sqlite3_reset(stmt);
5e6c9260913a lots of cleanups and small fixes
meillo@marmaro.de
parents: 16
diff changeset
60 return i;
5e6c9260913a lots of cleanups and small fixes
meillo@marmaro.de
parents: 16
diff changeset
61 }
5e6c9260913a lots of cleanups and small fixes
meillo@marmaro.de
parents: 16
diff changeset
62
5e6c9260913a lots of cleanups and small fixes
meillo@marmaro.de
parents: 16
diff changeset
63
15
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
64 int read_time() {
20
17b2bcc42d72 added check for empty result; minor stuff
meillo@marmaro.de
parents: 18
diff changeset
65 int error;
17b2bcc42d72 added check for empty result; minor stuff
meillo@marmaro.de
parents: 18
diff changeset
66
15
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
67 sprintf(query, "select time from game;");
16
3c104b5f5158 fixed small bug
meillo@marmaro.de
parents: 15
diff changeset
68 stmt = db_query(query);
20
17b2bcc42d72 added check for empty result; minor stuff
meillo@marmaro.de
parents: 18
diff changeset
69 error = sqlite3_step(stmt);
17b2bcc42d72 added check for empty result; minor stuff
meillo@marmaro.de
parents: 18
diff changeset
70 if (error == SQLITE_DONE) {
17b2bcc42d72 added check for empty result; minor stuff
meillo@marmaro.de
parents: 18
diff changeset
71 fprintf(stderr, "no game available\n");
17b2bcc42d72 added check for empty result; minor stuff
meillo@marmaro.de
parents: 18
diff changeset
72 exit(1);
17b2bcc42d72 added check for empty result; minor stuff
meillo@marmaro.de
parents: 18
diff changeset
73 }
17b2bcc42d72 added check for empty result; minor stuff
meillo@marmaro.de
parents: 18
diff changeset
74 if (error != SQLITE_ROW) {
17b2bcc42d72 added check for empty result; minor stuff
meillo@marmaro.de
parents: 18
diff changeset
75 db_error("read_time");
15
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
76 exit(1);
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
77 }
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
78 gametime = sqlite3_column_int(stmt, 0);
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
79 sqlite3_finalize(stmt);
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
80 return gametime;
082566ce7d10 added yet unversioned but needed file db.c
meillo@marmaro.de
parents:
diff changeset
81 }