X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.web-live.git;a=blobdiff_plain;f=yarrg%2Frssetup.c;h=e169dd5d323cfe8a9113313bc5b45af3aa3502ff;hp=6538677c2a3b291a9763e28580c4a5aefc9352f8;hb=653fdb17f1516833afb04b034dff94eb610adea7;hpb=322e26f969dfb65629833be5bd75ba71a15b8634 diff --git a/yarrg/rssetup.c b/yarrg/rssetup.c index 6538677..e169dd5 100644 --- a/yarrg/rssetup.c +++ b/yarrg/rssetup.c @@ -4,8 +4,22 @@ sqlite3 *db; sqlite3_stmt *ss_ipair; +static int busy_handler(void *u, int previous) { + if (DEBUGP(sql)) fprintf(stderr,"[[DB BUSY %d]]",previous); + sysassert(! usleep(5000) ); + return 1; +} + void setup(void) { + sqlite3_stmt *sst; + SQL_MUST( sqlite3_open("OCEAN-Midnight.db", &db) ); + SQL_MUST( sqlite3_busy_handler(db, busy_handler, 0) ); + + SQL_MUST( sqlite3_prepare(db, "BEGIN", -1, &sst, 0) ); + assert( !SQL_STEP(sst) ); + sqlite3_finalize(sst); + setup_value(); } @@ -15,9 +29,21 @@ int sql_step_wrap(sqlite3_stmt *ssh, const char *ssh_string, int sqr; sqr= sqlite3_step((ssh)); switch (sqr) { - case SQLITE_DONE: return 0; - case SQLITE_ROW: return 1; - case SQLITE_BUSY: sysassert(! usleep(5000) ); break; + case SQLITE_DONE: + if (DEBUGP(sql)) + fprintf(stderr,"SQL %s DONE\n",ssh_string); + return 0; + case SQLITE_ROW: + if (DEBUGP(sql)) { + int i; + fprintf(stderr,"SQL %s R",ssh_string); + for (i=0; i