From ea5ade36da841d1f007d5f74414e993c54187fc4 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sun, 27 Sep 2020 09:53:07 +0200 Subject: [PATCH] Added functions DataModel::get_value_at and DataModel::get_field_value_at. --- src/gdaex.c | 36 ++++++++++++++++++++++++++++++++++++ src/gdaex.h | 6 ++++++ 2 files changed, 42 insertions(+) diff --git a/src/gdaex.c b/src/gdaex.c index 2aed5d2..b2035c9 100644 --- a/src/gdaex.c +++ b/src/gdaex.c @@ -838,6 +838,18 @@ gdaex_data_model_is_empty (GdaDataModel *data_model) || gda_data_model_get_n_rows (data_model) < 1); } +GValue +*gdaex_data_model_get_field_value_at (GdaDataModel *data_model, + gint row, + const gchar *field_name) +{ + gint col; + + col = gda_data_model_get_column_index (data_model, field_name); + + return gdaex_data_model_get_value_at (data_model, row, col); +} + /** * gdaex_data_model_get_field_value_stringify_at: * @data_model: a #GdaDataModel object. @@ -1136,6 +1148,30 @@ struct tm return value; } +GValue +*gdaex_data_model_get_value_at (GdaDataModel *data_model, gint row, gint col) +{ + const GValue *v; + GValue *ret; + GError *error; + + error = NULL; + + v = gda_data_model_get_value_at (data_model, col, row, &error); + if (v != NULL && error == NULL) + { + ret = gda_value_new_null (); + } + else + { + ret = g_new0 (GValue, 1); + ret = g_value_init (ret, G_VALUE_TYPE (v)); + g_value_copy (v, ret); + } + + return ret; +} + /** * gdaex_data_model_get_value_stringify_at: * @data_model: a #GdaDataModel object. diff --git a/src/gdaex.h b/src/gdaex.h index 5779625..2030c1e 100644 --- a/src/gdaex.h +++ b/src/gdaex.h @@ -96,6 +96,9 @@ GdaDataModel *gdaex_query (GdaEx *gdaex, const gchar *sql); gboolean gdaex_data_model_is_empty (GdaDataModel *data_model); +GValue *gdaex_data_model_get_field_value_at (GdaDataModel *data_model, + gint row, + const gchar *field_name); gchar *gdaex_data_model_get_field_value_stringify_at (GdaDataModel *data_model, gint row, const gchar *field_name); @@ -127,6 +130,9 @@ struct tm *gdaex_data_model_get_field_value_tm_at (GdaDataModel *data_model, gint row, const gchar *field_name); +GValue *gdaex_data_model_get_value_at (GdaDataModel *data_model, + gint row, + gint col); gchar *gdaex_data_model_get_value_stringify_at (GdaDataModel *data_model, gint row, gint col); -- 2.49.0