summaryrefslogtreecommitdiff
path: root/src/analysis/db/misc/timestamp.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2019-05-08 09:28:58 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2019-05-08 09:28:58 (GMT)
commit86ba53836168bcc591f532f2419fa290de601572 (patch)
tree91c96614d6f7e3fd75800a52c0166c91c7f8ef31 /src/analysis/db/misc/timestamp.c
parent28e53c2498903090182ebeb128347fcd92896cd9 (diff)
Updated the core functions dealing with SQLite databases.
Diffstat (limited to 'src/analysis/db/misc/timestamp.c')
-rw-r--r--src/analysis/db/misc/timestamp.c69
1 files changed, 21 insertions, 48 deletions
diff --git a/src/analysis/db/misc/timestamp.c b/src/analysis/db/misc/timestamp.c
index 5302c60..1d2fcd9 100644
--- a/src/analysis/db/misc/timestamp.c
+++ b/src/analysis/db/misc/timestamp.c
@@ -166,30 +166,28 @@ bool pack_timestamp(const timestamp_t *timestamp, packed_buffer *pbuf)
/******************************************************************************
* *
-* Paramètres : timestamp = horodatage aux informations inutiles. *
+* Paramètres : timestamp = horodatage à compléter. *
* name = désignation personnalisée du champ dans la BD. *
-* values = couples de champs et de valeurs à lier. [OUT] *
-* count = nombre de ces couples. [OUT] *
+* values = tableau d'éléments à consulter. *
+* count = nombre de descriptions renseignées. *
* *
-* Description : Constitue les champs destinés à une insertion / modification.*
+* Description : Charge les valeurs utiles pour un horodatage. *
* *
-* Retour : Bilan de l'opération : succès ou non. *
+* Retour : Bilan de l'opération. *
* *
* Remarques : - *
* *
******************************************************************************/
-bool prepare_db_statement_for_timestamp(const timestamp_t *timestamp, const char *name, bound_value **values, size_t *count)
+bool load_timestamp(timestamp_t *timestamp, const char *name, const bound_value *values, size_t count)
{
- bound_value *value; /* Valeur à éditer / définir */
+ const bound_value *value; /* Valeur à intégrer */
- *values = (bound_value *)realloc(*values, ++(*count) * sizeof(bound_value));
- value = &(*values)[*count - 1];
+ value = find_bound_value(values, count, name);
+ if (value == NULL) return false;
+ if (value->type != SQLITE_INT64) return false;
- value->cname = name;
- value->built_name = false;
- value->type = SQLITE_INT64;
- value->integer64 = *timestamp;
+ *timestamp = value->integer64;
return true;
@@ -200,58 +198,33 @@ bool prepare_db_statement_for_timestamp(const timestamp_t *timestamp, const char
* *
* Paramètres : timestamp = horodatage aux informations inutiles. *
* name = désignation personnalisée du champ dans la BD. *
-* values = tableau d'éléments à compléter. [OUT] *
-* count = nombre de descriptions renseignées. [OUT] *
+* values = couples de champs et de valeurs à lier. [OUT] *
+* count = nombre de ces couples. [OUT] *
* *
-* Description : Décrit les colonnes utiles à un horodatage. *
+* Description : Constitue les champs destinés à une insertion / modification.*
* *
-* Retour : Bilan de l'opération. *
+* Retour : Bilan de l'opération : succès ou non. *
* *
* Remarques : - *
* *
******************************************************************************/
-bool setup_load_of_timestamp(const timestamp_t *timestamp, const char *name, bound_value **values, size_t *count)
+bool store_timestamp(const timestamp_t *timestamp, const char *name, bound_value **values, size_t *count)
{
bound_value *value; /* Valeur à éditer / définir */
- *values = (bound_value *)realloc(*values, ++(*count) * sizeof(bound_value));
+ *values = realloc(*values, ++(*count) * sizeof(bound_value));
+
value = &(*values)[*count - 1];
value->cname = name;
value->built_name = false;
value->type = SQLITE_INT64;
- return true;
-
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : timestamp = horodatage à compléter. *
-* name = désignation personnalisée du champ dans la BD. *
-* values = tableau d'éléments à consulter. *
-* count = nombre de descriptions renseignées. *
-* *
-* Description : Charge les valeurs utiles pour un horodatage. *
-* *
-* Retour : Bilan de l'opération. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-bool load_timestamp(timestamp_t *timestamp, const char *name, const bound_value *values, size_t count)
-{
- const bound_value *value; /* Valeur à intégrer */
-
- value = find_bound_value(values, count, name);
- if (value == NULL) return false;
- if (value->type != SQLITE_INT64) return false;
+ value->has_value = (timestamp != NULL);
- *timestamp = value->integer64;
+ if (value->has_value)
+ value->integer64 = *timestamp;
return true;