5 sqlite3_stmt *ss_ipair;
7 static int busy_handler(void *u, int previous) {
8 if (DEBUGP(sql)) fprintf(stderr,"[[DB BUSY %d]]",previous);
9 sysassert(! usleep(5000) );
16 SQL_MUST( sqlite3_open("OCEAN-Midnight.db", &db) );
17 SQL_MUST( sqlite3_busy_handler(db, busy_handler, 0) );
19 SQL_MUST( sqlite3_prepare(db, "BEGIN", -1, &sst, 0) );
20 assert( !SQL_STEP(sst) );
21 sqlite3_finalize(sst);
26 int sql_single_int(const char *stmt) {
28 SQL_MUST( sqlite3_prepare(db, stmt, -1,&sst,0) );
29 assert( SQL_STEP(sst) );
30 int rv= sqlite3_column_int(sst,0);
31 sqlite3_finalize(sst);
35 int sql_step_wrap(sqlite3_stmt *ssh, const char *ssh_string,
36 const char *file, int line) {
39 sqr= sqlite3_step((ssh));
43 fprintf(stderr,"SQL %s DONE\n",ssh_string);
48 fprintf(stderr,"SQL %s R",ssh_string);
49 for (i=0; i<sqlite3_column_count(ssh); i++) {
51 fputs((char*)sqlite3_column_text(ssh,i),stderr);
56 default: fatal("SQL step failed at %s:%d: code %d: %s: %s",
57 file, line, sqr, sqlite3_errmsg(db), ssh_string);