add wrapper for DBUResult fptrs

Thu, 27 Feb 2025 20:25:54 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Thu, 27 Feb 2025 20:25:54 +0100
changeset 17
23e678e6c917
parent 16
04c9f8d8f03b
child 18
e78ef06fe062

add wrapper for DBUResult fptrs

dbutils/db.c file | annotate | diff | comparison | revisions
dbutils/dbutils/db.h file | annotate | diff | comparison | revisions
--- a/dbutils/db.c	Tue Feb 25 21:12:11 2025 +0100
+++ b/dbutils/db.c	Thu Feb 27 20:25:54 2025 +0100
@@ -82,6 +82,43 @@
 }
 
 
+int dbuResultHasData(DBUResult *result) {
+    return result->hasData(result);
+}
+
+int dbuResultIsOk(DBUResult *result) {
+    return result->isOk(result);
+}
+
+int dbuResultNextRow(DBUResult *result) {
+    return result->nextRow(result);
+}
+
+cxstring dbuResultGetText(DBUResult *result, int field) {
+    return result->getText(result, field);
+}
+
+int64_t dbuResultGetInt(DBUResult *result, int field) {
+    if(result->optional_getInt) {
+        return result->optional_getInt(result, field);
+    } else {
+        cxstring s = result->getText(result, 0);
+        int64_t value = 0;
+        cx_strtoi64(s, &value, 10);
+        return value;
+    }
+}
+
+DBUBytes dbuResultGetBinary(DBUResult *result, int field) {
+    if(result->optional_getBinary) {
+        return result->optional_getBinary(result, field);
+    } else {
+        cxstring bin = result->getText(result, field);
+        return (DBUBytes) { (const unsigned char*)bin.ptr, bin.length };
+    }
+}
+
+
 
 int dbuResultAsInt32(DBUResult *r, int32_t *result) {
     int64_t i;
--- a/dbutils/dbutils/db.h	Tue Feb 25 21:12:11 2025 +0100
+++ b/dbutils/dbutils/db.h	Thu Feb 27 20:25:54 2025 +0100
@@ -109,6 +109,14 @@
 DBUResult* dbuQueryGetResult(DBUQuery *q);
 void dbuQueryFree(DBUQuery *q);
 
+int dbuResultHasData(DBUResult *result);
+int dbuResultIsOk(DBUResult *result);
+int dbuResultNextRow(DBUResult *result);
+cxstring dbuResultGetText(DBUResult *result, int field);
+int64_t dbuResultGetInt(DBUResult *result, int field);
+DBUBytes dbuResultGetBinary(DBUResult *result, int field);
+
+
 
 #define dbuResultAsValue(r, result) \
     _Generic(result, \

mercurial