GnuCash c935c2f+
Loading...
Searching...
No Matches
Data Structures | Functions
gnc-recurrence-sql.h File Reference

load and save accounts data to SQL More...

#include <glib.h>
#include "Recurrence.h"
#include "guid.h"
#include "gnc-sql-object-backend.hpp"

Go to the source code of this file.

Data Structures

class  GncSqlRecurrenceBackend
 

Functions

gboolean gnc_sql_recurrence_save (GncSqlBackend *sql_be, const GncGUID *guid, const Recurrence *pRecurrence)
 
void gnc_sql_recurrence_save_list (GncSqlBackend *sql_be, const GncGUID *guid, GList *schedule)
 
gboolean gnc_sql_recurrence_delete (GncSqlBackend *sql_be, const GncGUID *guid)
 
Recurrencegnc_sql_recurrence_load (GncSqlBackend *sql_be, const GncGUID *guid)
 
GList * gnc_sql_recurrence_load_list (GncSqlBackend *sql_be, const GncGUID *guid)
 

Detailed Description

load and save accounts data to SQL

Author
Copyright (c) 2006-2008 Phil Longstaff plong.nosp@m.staf.nosp@m.f@rog.nosp@m.ers..nosp@m.com

This file implements the top-level QofBackend API for saving/ restoring data to/from an SQL database

Definition in file gnc-recurrence-sql.h.

Function Documentation

◆ gnc_sql_recurrence_delete()

gboolean gnc_sql_recurrence_delete ( GncSqlBackend sql_be,
const GncGUID guid 
)

Definition at line 277 of file gnc-recurrence-sql.cpp.

278{
279 recurrence_info_t recurrence_info;
280
281 g_return_val_if_fail (sql_be != NULL, FALSE);
282 g_return_val_if_fail (guid != NULL, FALSE);
283
284 recurrence_info.be = sql_be;
285 recurrence_info.guid = guid;
286 return sql_be->do_db_operation(OP_DB_DELETE, TABLE_NAME,
287 TABLE_NAME, &recurrence_info, guid_col_table);
288}
bool do_db_operation(E_DB_OPERATION op, const char *table_name, QofIdTypeConst obj_name, gpointer pObject, const EntryVec &table) const noexcept
Performs an operation on the database.

◆ gnc_sql_recurrence_load()

Recurrence * gnc_sql_recurrence_load ( GncSqlBackend sql_be,
const GncGUID guid 
)

Definition at line 323 of file gnc-recurrence-sql.cpp.

324{
325 Recurrence* r = NULL;
326
327 g_return_val_if_fail (sql_be != NULL, NULL);
328 g_return_val_if_fail (guid != NULL, NULL);
329
330 auto result = gnc_sql_set_recurrences_from_db (sql_be, guid);
331 auto row = result->begin();
332 if (row == nullptr)
333 {
334 g_warning ("No recurrences found");
335 return r;
336 }
337 r = g_new0 (Recurrence, 1);
338 g_assert (r != NULL);
339 load_recurrence (sql_be, *(result->begin()), r);
340
341 if (++row != nullptr)
342 g_warning ("More than 1 recurrence found: first one used");
343
344 return r;
345}

◆ gnc_sql_recurrence_load_list()

GList * gnc_sql_recurrence_load_list ( GncSqlBackend sql_be,
const GncGUID guid 
)

Definition at line 348 of file gnc-recurrence-sql.cpp.

349{
350 GList* list = NULL;
351
352 g_return_val_if_fail (sql_be != NULL, NULL);
353 g_return_val_if_fail (guid != NULL, NULL);
354
355 auto result = gnc_sql_set_recurrences_from_db (sql_be, guid);
356 for (auto row : *result)
357 {
358 Recurrence* pRecurrence = g_new0 (Recurrence, 1);
359 g_assert (pRecurrence != NULL);
360 load_recurrence (sql_be, row, pRecurrence);
361 list = g_list_append (list, pRecurrence);
362 }
363
364 return list;
365}

◆ gnc_sql_recurrence_save()

gboolean gnc_sql_recurrence_save ( GncSqlBackend sql_be,
const GncGUID guid,
const Recurrence pRecurrence 
)

Definition at line 236 of file gnc-recurrence-sql.cpp.

238{
239 recurrence_info_t recurrence_info;
240
241 g_return_val_if_fail (sql_be != NULL, FALSE);
242 g_return_val_if_fail (guid != NULL, FALSE);
243 g_return_val_if_fail (r != NULL, FALSE);
244
245 (void)gnc_sql_recurrence_delete (sql_be, guid);
246
247 recurrence_info.be = sql_be;
248 recurrence_info.guid = guid;
249 recurrence_info.pRecurrence = (Recurrence*)r;
250 return sql_be->do_db_operation(OP_DB_INSERT, TABLE_NAME,
251 TABLE_NAME, &recurrence_info, col_table);
252}

◆ gnc_sql_recurrence_save_list()

void gnc_sql_recurrence_save_list ( GncSqlBackend sql_be,
const GncGUID guid,
GList *  schedule 
)

Definition at line 255 of file gnc-recurrence-sql.cpp.

257{
258 recurrence_info_t recurrence_info;
259 GList* l;
260
261 g_return_if_fail (sql_be != NULL);
262 g_return_if_fail (guid != NULL);
263
264 (void)gnc_sql_recurrence_delete (sql_be, guid);
265
266 recurrence_info.be = sql_be;
267 recurrence_info.guid = guid;
268 for (l = schedule; l != NULL; l = g_list_next (l))
269 {
270 recurrence_info.pRecurrence = (Recurrence*)l->data;
271 (void)sql_be->do_db_operation(OP_DB_INSERT, TABLE_NAME,
272 TABLE_NAME, &recurrence_info, col_table);
273 }
274}