GnuCash 2.4.99
Data Structures | Defines | 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

Defines

#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_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 <plongstaff@rogers.com>
Copyright (c) 2006-2008 Phil Longstaff <plongstaff@rogers.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.


Define Documentation

#define COL_AUTOINC   0x08

The column is an auto-incrementing int

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

#define COL_NNUL   0x02

The column may not contain a NULL value

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

#define COL_PKEY   0x01

The column is a primary key

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

#define COL_UNIQUE   0x04

The column must contain unique values

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

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines