]> pd.if.org Git - zpackage/blob - lib/dbquery.c
c2f50b6918d36769e7f153f5745e1e46b33c2bd5
[zpackage] / lib / dbquery.c
1 #include <stdarg.h>
2 #include <string.h>
3
4 #include "sqlite3.h"
5 #include "zpm.h"
6
7 sqlite3_stmt *zpm_dbquery(struct zpm *zpm, char *query, ...) {
8         sqlite3 *db;
9         char *sql;
10         va_list args;
11         sqlite3_stmt *st;
12         int rv;
13
14         if (!zpm || zpm->error || !zpm->db) {
15                 zpm->error = 1;
16                 return 0;
17         }
18
19         db = zpm->db;
20
21         va_start(args, query);
22         sql = sqlite3_vmprintf(query, args);
23         va_end(args);
24
25         if (!sql) {
26                 zpm->error = 1;
27                 return 0;
28         }
29
30         rv = sqlite3_prepare_v2(db, sql, strlen(sql), &st, NULL);
31         if (rv != SQLITE_OK) {
32                 zpm->error = rv;
33                 return 0;
34         }
35
36         return st;
37 }