]> pd.if.org Git - zpackage/blobdiff - lib/dbquery.c
add support for notes
[zpackage] / lib / dbquery.c
index ab03984697b2f255fc88aaa9ebc9d0c0a8d78ba5..cba95378ae2a258c8351b9f3ac07191bc46ce337 100644 (file)
@@ -62,6 +62,26 @@ sqlite3_stmt *zpm_dbquery(struct zpm *zpm, char *query, ...) {
        return st;
 }
 
+void zpm_db_run(struct zpm *zpm, char *query, ...) {
+       sqlite3_stmt *st;
+       va_list args;
+       int rv;
+
+       va_start(args, query);
+       st = zpm_dbqueryv(zpm, query, args);
+       va_end(args);
+
+       rv = sqlite3_step(st);
+
+       if (rv != SQLITE_DONE) {
+               zpm->error = 1;
+               zpm_seterror(zpm, "db error: %s", sqlite3_errstr(rv));
+       }
+
+       sqlite3_finalize(st);
+       return ;
+}
+
 char *zpm_db_string(struct zpm *zpm, char *query, ...) {
        sqlite3_stmt *st;
        va_list args;
@@ -84,3 +104,24 @@ char *zpm_db_string(struct zpm *zpm, char *query, ...) {
        sqlite3_finalize(st);
        return result;
 }
+
+int zpm_db_int(struct zpm *zpm, char *query, ...) {
+       sqlite3_stmt *st;
+       va_list args;
+       int rv;
+       int result = 0;
+
+       va_start(args, query);
+       st = zpm_dbqueryv(zpm, query, args);
+       va_end(args);
+
+       rv = sqlite3_step(st);
+
+       if (rv == SQLITE_ROW) {
+               result = sqlite3_column_int(st, 0);
+       }
+       /* TODO set error if it's not SQLITE_ROW */
+
+       sqlite3_finalize(st);
+       return result;
+}