GnuCash  2.6.99
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Enumerations | Functions
gnc-backend-sql.h File Reference

load and save data to SQL More...

#include "qof.h"
#include "qofbackend-p.h"
#include <gmodule.h>

Go to the source code of this file.

Data Structures

struct  GncSqlBackend
 
struct  GncSqlStatement
 
struct  GncSqlConnection
 
struct  GncSqlRow
 
struct  GncSqlResult
 
struct  GncSqlObjectBackend
 
struct  GncSqlColumnInfo
 
struct  GncSqlColumnTableEntry
 
struct  GncSqlColumnTypeHandler
 
struct  write_objects_t
 

Macros

#define gnc_sql_statement_dispose(STMT)   (STMT)->dispose(STMT)
 
#define gnc_sql_statement_to_sql(STMT)   (STMT)->toSql(STMT)
 
#define gnc_sql_statement_add_where_cond(STMT, TYPENAME, OBJ, COLDESC, VALUE)   (STMT)->addWhereCond(STMT, TYPENAME, OBJ, COLDESC, VALUE)
 
#define gnc_sql_connection_dispose(CONN)   (CONN)->dispose(CONN)
 
#define gnc_sql_connection_execute_select_statement(CONN, STMT)   (CONN)->executeSelectStatement(CONN,STMT)
 
#define gnc_sql_connection_execute_nonselect_statement(CONN, STMT)   (CONN)->executeNonSelectStatement(CONN,STMT)
 
#define gnc_sql_connection_create_statement_from_sql(CONN, SQL)   (CONN)->createStatementFromSql(CONN,SQL)
 
#define gnc_sql_connection_does_table_exist(CONN, NAME)   (CONN)->doesTableExist(CONN,NAME)
 
#define gnc_sql_connection_begin_transaction(CONN)   (CONN)->beginTransaction(CONN)
 
#define gnc_sql_connection_rollback_transaction(CONN)   (CONN)->rollbackTransaction(CONN)
 
#define gnc_sql_connection_commit_transaction(CONN)   (CONN)->commitTransaction(CONN)
 
#define gnc_sql_connection_create_table(CONN, NAME, COLLIST)   (CONN)->createTable(CONN,NAME,COLLIST)
 
#define gnc_sql_connection_create_index(CONN, INDEXNAME, TABLENAME, COLTABLE)   (CONN)->createIndex(CONN,INDEXNAME,TABLENAME,COLTABLE)
 
#define gnc_sql_connection_add_columns_to_table(CONN, TABLENAME, COLLIST)   (CONN)->addColumnsToTable(CONN,TABLENAME,COLLIST)
 
#define gnc_sql_connection_quote_string(CONN, STR)   (CONN)->quoteString(CONN,STR)
 
#define gnc_sql_row_get_value_at_col_name(ROW, N)   (ROW)->getValueAtColName(ROW,N)
 
#define gnc_sql_row_dispose(ROW)   (ROW)->dispose(ROW)
 
#define gnc_sql_result_get_num_rows(RESULT)   (RESULT)->getNumRows(RESULT)
 
#define gnc_sql_result_get_first_row(RESULT)   (RESULT)->getFirstRow(RESULT)
 
#define gnc_sql_result_get_next_row(RESULT)   (RESULT)->getNextRow(RESULT)
 
#define gnc_sql_result_dispose(RESULT)   (RESULT)->dispose(RESULT)
 
#define GNC_SQL_BACKEND   "gnc:sql:1"
 
#define GNC_SQL_BACKEND_VERSION   1
 
#define CT_STRING   "ct_string"
 
#define CT_GUID   "ct_guid"
 
#define CT_INT   "ct_int"
 
#define CT_INT64   "ct_int64"
 
#define CT_TIMESPEC   "ct_timespec"
 
#define CT_GDATE   "ct_gdate"
 
#define CT_NUMERIC   "ct_numeric"
 
#define CT_DOUBLE   "ct_double"
 
#define CT_BOOLEAN   "ct_boolean"
 
#define CT_ACCOUNTREF   "ct_accountref"
 
#define CT_BUDGETREF   "ct_budgetref"
 
#define CT_COMMODITYREF   "ct_commodityref"
 
#define CT_LOTREF   "ct_lotref"
 
#define CT_TXREF   "ct_txref"
 
#define COL_PKEY   0x01
 
#define COL_NNUL   0x02
 
#define COL_UNIQUE   0x04
 
#define COL_AUTOINC   0x08
 

Typedefs

typedef struct GncSqlConnection GncSqlConnection
 
typedef struct GncSqlBackend GncSqlBackend
 
typedef struct
GncSqlColumnTableEntry 
GncSqlColumnTableEntry
 
typedef struct GncSqlStatement GncSqlStatement
 
typedef struct GncSqlResult GncSqlResult
 
typedef struct GncSqlRow GncSqlRow
 
typedef void(* GNC_SQL_LOAD_FN )(const GncSqlBackend *be, GncSqlRow *row, QofSetterFunc setter, gpointer pObject, const GncSqlColumnTableEntry *table)
 
typedef void(* GNC_SQL_ADD_COL_INFO_TO_LIST_FN )(const GncSqlBackend *be, const GncSqlColumnTableEntry *table_row, GList **pList)
 
typedef void(* GNC_SQL_ADD_COLNAME_TO_LIST_FN )(const GncSqlColumnTableEntry *table_row, GList **pList)
 
typedef void(* GNC_SQL_ADD_GVALUE_TO_SLIST_FN )(const GncSqlBackend *be, QofIdTypeConst obj_name, const gpointer pObject, const GncSqlColumnTableEntry *table_row, GSList **pList)
 

Enumerations

enum  GncSqlBasicColumnType {
  BCT_STRING, BCT_INT, BCT_INT64, BCT_DATE,
  BCT_DOUBLE, BCT_DATETIME
}
 
enum  E_DB_OPERATION { OP_DB_INSERT, OP_DB_UPDATE, OP_DB_DELETE }
 

Functions

void gnc_sql_init (GncSqlBackend *be)
 
void gnc_sql_load (GncSqlBackend *be, QofBook *book, QofBackendLoadType loadType)
 
void gnc_sql_push_commodity_for_postload_processing (GncSqlBackend *be, gpointer *comm)
 
void gnc_sql_sync_all (GncSqlBackend *be, QofBook *book)
 
void gnc_sql_begin_edit (GncSqlBackend *be, QofInstance *inst)
 
void gnc_sql_rollback_edit (GncSqlBackend *qbe, QofInstance *inst)
 
void gnc_sql_commit_edit (GncSqlBackend *qbe, QofInstance *inst)
 
QofAccessFunc gnc_sql_get_getter (QofIdTypeConst obj_name, const GncSqlColumnTableEntry *table_row)
 
void gnc_sql_add_colname_to_list (const GncSqlColumnTableEntry *table_row, GList **pList)
 
gboolean gnc_sql_do_db_operation (GncSqlBackend *be, E_DB_OPERATION op, const gchar *table_name, QofIdTypeConst obj_name, gpointer pObject, const GncSqlColumnTableEntry *table)
 
GncSqlResultgnc_sql_execute_select_statement (GncSqlBackend *be, GncSqlStatement *statement)
 
GncSqlResultgnc_sql_execute_select_sql (GncSqlBackend *be, const gchar *sql)
 
gint gnc_sql_execute_nonselect_sql (GncSqlBackend *be, const gchar *sql)
 
GncSqlStatementgnc_sql_create_statement_from_sql (GncSqlBackend *be, const gchar *sql)
 
void gnc_sql_load_object (const GncSqlBackend *be, GncSqlRow *row, QofIdTypeConst obj_name, gpointer pObject, const GncSqlColumnTableEntry *table)
 
gboolean gnc_sql_object_is_it_in_db (GncSqlBackend *be, const gchar *table_name, QofIdTypeConst obj_name, const gpointer pObject, const GncSqlColumnTableEntry *table)
 
gint gnc_sql_get_table_version (const GncSqlBackend *be, const gchar *table_name)
 
gboolean gnc_sql_set_table_version (GncSqlBackend *be, const gchar *table_name, gint version)
 
gboolean gnc_sql_create_table (GncSqlBackend *be, const gchar *table_name, gint table_version, const GncSqlColumnTableEntry *col_table)
 
gboolean gnc_sql_create_temp_table (const GncSqlBackend *be, const gchar *table_name, const GncSqlColumnTableEntry *col_table)
 
gboolean gnc_sql_create_index (const GncSqlBackend *be, const gchar *index_name, const gchar *table_name, const GncSqlColumnTableEntry *col_table)
 
const GncGUIDgnc_sql_load_guid (const GncSqlBackend *be, GncSqlRow *row)
 
const GncGUIDgnc_sql_load_tx_guid (const GncSqlBackend *be, GncSqlRow *row)
 
GncSqlStatementgnc_sql_create_select_statement (GncSqlBackend *be, const gchar *table_name)
 
void gnc_sql_register_col_type_handler (const gchar *colType, const GncSqlColumnTypeHandler *handler)
 
void gnc_sql_add_gvalue_objectref_guid_to_slist (const GncSqlBackend *be, QofIdTypeConst obj_name, const gpointer pObject, const GncSqlColumnTableEntry *table_row, GSList **pList)
 
void gnc_sql_add_objectref_guid_col_info_to_list (const GncSqlBackend *be, const GncSqlColumnTableEntry *table_row, GList **pList)
 
guint gnc_sql_append_guid_list_to_sql (GString *str, GList *list, guint maxCount)
 
void gnc_sql_add_subtable_colnames_to_list (const GncSqlColumnTableEntry *table_row, const GncSqlColumnTableEntry *subtable, GList **pList)
 
gchar * gnc_sql_get_sql_value (const GncSqlConnection *conn, const GValue *value)
 
void gnc_sql_init_version_info (GncSqlBackend *be)
 
void gnc_sql_finalize_version_info (GncSqlBackend *be)
 
gboolean gnc_sql_commit_standard_item (GncSqlBackend *be, QofInstance *inst, const gchar *tableName, QofIdTypeConst obj_name, const GncSqlColumnTableEntry *col_table)
 
gint64 gnc_sql_get_integer_value (const GValue *value)
 
gchar * gnc_sql_convert_timespec_to_string (const GncSqlBackend *be, Timespec ts)
 
void gnc_sql_upgrade_table (GncSqlBackend *be, const gchar *table_name, const GncSqlColumnTableEntry *col_table)
 
gboolean gnc_sql_add_columns_to_table (GncSqlBackend *be, const gchar *table_name, const GncSqlColumnTableEntry *new_col_table)
 
void gnc_sql_set_load_order (const gchar **load_order)
 
void _retrieve_guid_ (gpointer pObject, gpointer pValue)
 
gpointer gnc_sql_compile_query (QofBackend *pBEnd, QofQuery *pQuery)
 
void gnc_sql_free_query (QofBackend *pBEnd, gpointer pQuery)
 
void gnc_sql_run_query (QofBackend *pBEnd, gpointer pQuery)
 

Detailed Description

load and save data to SQL

The SQL backend core is a library which can form the core for a QOF backend based on an SQL library.

Author
Copyright (c) 2006-2008 Phil Longstaff plong.nosp@m.staf.nosp@m.f@rog.nosp@m.ers..nosp@m.com
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-backend-sql.h.

Macro Definition Documentation

#define COL_AUTOINC   0x08

The column is an auto-incrementing int

Definition at line 355 of file gnc-backend-sql.h.

#define COL_NNUL   0x02

The column may not contain a NULL value

Definition at line 353 of file gnc-backend-sql.h.

#define COL_PKEY   0x01

The column is a primary key

Definition at line 352 of file gnc-backend-sql.h.

#define COL_UNIQUE   0x04

The column must contain unique values

Definition at line 354 of file gnc-backend-sql.h.