+void sql_fatal(const char *stmt_what, int sqr, const char *act_what) {
+ fatal("SQL call failed, stmt %s code %d: %s: %s",
+ stmt_what, sqr, sqlite3_errmsg(db), act_what);
+}
+
+void sql_bind(sqlite3_stmt *ss, int index, int value,
+ const char *ss_what, const char *val_what) {
+ debugf("SQL BIND %s #%d = %d = %s\n", ss_what, index, value, val_what);
+ int sqr= sqlite3_bind_int(ss, index, value);
+ if (sqr) sql_fatal(ss_what, sqr,
+ masprintf("bind #%d (%s)", index, val_what));
+}
+
+sqlite3_stmt *sql_prepare(const char *stmt, const char *what) {
+ sqlite3_stmt *ssr;
+ debugf("SQL PREPARE %s [[\n%s\n]]\n", what, stmt);
+ SQL_MUST( sqlite3_prepare(db, stmt, -1, &ssr, 0) );
+ return ssr;
+}
+