# HG changeset patch # User Olaf Wintermann # Date 1740686035 -3600 # Node ID 55de75c839e85c44381d8abe2c415509e5049c04 # Parent e78ef06fe062537e203ec400ede71dd8dc3a900c add dbuSimpleGetList* functions diff -r e78ef06fe062 -r 55de75c839e8 dbutils/db.c --- a/dbutils/db.c Thu Feb 27 20:47:33 2025 +0100 +++ b/dbutils/db.c Thu Feb 27 20:53:55 2025 +0100 @@ -197,11 +197,22 @@ return -1; } - -int dbuSimpleGetInt64WithIntParam(DBUConnection *conn, const char *sql, int64_t param, int64_t *result) { +static DBUQuery* createIntParamQuery(DBUConnection *conn, const char *sql, int64_t param) { DBUQuery *q = conn->createQuery(conn, cxDefaultAllocator); dbuQuerySetSQL(q, sql); dbuQuerySetParamInt64(q, 1, param); + return q; +} + +static DBUQuery* createStringParamQuery(DBUConnection *conn, const char *sql, cxstring param) { + DBUQuery *q = conn->createQuery(conn, cxDefaultAllocator); + dbuQuerySetSQL(q, sql); + dbuQuerySetParamString(q, 1, param); + return q; +} + +int dbuSimpleGetInt64WithIntParam(DBUConnection *conn, const char *sql, int64_t param, int64_t *result) { + DBUQuery *q = createIntParamQuery(conn, sql, param); int err = dbuQueryExec(q); dbuQueryFree(q); if(!err) { @@ -212,9 +223,7 @@ } int dbuSimpleGetInt64WithStringParam(DBUConnection *conn, const char *sql, cxstring param, int64_t *result) { - DBUQuery *q = conn->createQuery(conn, cxDefaultAllocator); - dbuQuerySetSQL(q, sql); - dbuQuerySetParamString(q, 1, param); + DBUQuery *q = createStringParamQuery(conn, sql, param); int err = dbuQueryExec(q); dbuQueryFree(q); if(!err) { @@ -225,9 +234,7 @@ } int dbuSimpleGetStringWithIntParam(DBUConnection *conn, const char *sql, int64_t param, const CxAllocator *a, cxmutstr *result) { - DBUQuery *q = conn->createQuery(conn, cxDefaultAllocator); - dbuQuerySetSQL(q, sql); - dbuQuerySetParamInt64(q, 1, param); + DBUQuery *q = createIntParamQuery(conn, sql, param); int err = dbuQueryExec(q); dbuQueryFree(q); if(!err) { @@ -238,9 +245,7 @@ } int dbuSimpleGetStringWithStringParam(DBUConnection *conn, const char *sql, cxstring param, const CxAllocator *a, cxmutstr *result) { - DBUQuery *q = conn->createQuery(conn, cxDefaultAllocator); - dbuQuerySetSQL(q, sql); - dbuQuerySetParamString(q, 1, param); + DBUQuery *q = createStringParamQuery(conn, sql, param); int err = dbuQueryExec(q); dbuQueryFree(q); if(!err) { @@ -249,3 +254,19 @@ } return err; } + +CxList* dbuSimpleGetListWithIntParam(DBUConnection *conn, const char *sql, int64_t param, const CxAllocator *a, DBUClass *type) { + DBUQuery *q = createIntParamQuery(conn, sql, param); + DBUObjectBuilder *builder = dbuObjectBuilder(type, q, a); + CxList *list = dbuObjectBuilderGetList(builder); + dbuObjectBuilderDestroy(builder); + return list; +} + +CxList* dbuSimpleGetListWithStringParam(DBUConnection *conn, const char *sql, cxstring param, const CxAllocator *a, DBUClass *type) { + DBUQuery *q = createStringParamQuery(conn, sql, param); + DBUObjectBuilder *builder = dbuObjectBuilder(type, q, a); + CxList *list = dbuObjectBuilderGetList(builder); + dbuObjectBuilderDestroy(builder); + return list; +} diff -r e78ef06fe062 -r 55de75c839e8 dbutils/dbutils/db.h --- a/dbutils/dbutils/db.h Thu Feb 27 20:47:33 2025 +0100 +++ b/dbutils/dbutils/db.h Thu Feb 27 20:53:55 2025 +0100 @@ -153,6 +153,8 @@ int dbuSimpleGetInt64WithStringParam(DBUConnection *conn, const char *sql, cxstring param, int64_t *result); int dbuSimpleGetStringWithIntParam(DBUConnection *conn, const char *sql, int64_t param, const CxAllocator *a, cxmutstr *result); int dbuSimpleGetStringWithStringParam(DBUConnection *conn, const char *sql, cxstring param, const CxAllocator *a, cxmutstr *result); +CxList* dbuSimpleGetListWithIntParam(DBUConnection *conn, const char *sql, int64_t param, const CxAllocator *a, DBUClass *type); +CxList* dbuSimpleGetListWithStringParam(DBUConnection *conn, const char *sql, cxstring param, const CxAllocator *a, DBUClass *type); #ifdef __cplusplus }