X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=lib%2Fdbquery.c;h=cba95378ae2a258c8351b9f3ac07191bc46ce337;hb=383712eefa950c5dc619f8cd5fb60be8e8041502;hp=ab03984697b2f255fc88aaa9ebc9d0c0a8d78ba5;hpb=c22f072a98c1117f334367f46740c05d48296044;p=zpackage diff --git a/lib/dbquery.c b/lib/dbquery.c index ab03984..cba9537 100644 --- a/lib/dbquery.c +++ b/lib/dbquery.c @@ -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; +}