46 #define ADDRESS_MAX_NAME_LEN 1024
47 #define ADDRESS_MAX_ADDRESS_LINE_LEN 1024
48 #define ADDRESS_MAX_PHONE_LEN 128
49 #define ADDRESS_MAX_FAX_LEN 128
50 #define ADDRESS_MAX_EMAIL_LEN 256
54 {
"name", CT_STRING, ADDRESS_MAX_NAME_LEN,
COL_NNUL,
"name" },
55 {
"addr1", CT_STRING, ADDRESS_MAX_ADDRESS_LINE_LEN,
COL_NNUL,
"addr1" },
56 {
"addr2", CT_STRING, ADDRESS_MAX_ADDRESS_LINE_LEN,
COL_NNUL,
"addr2" },
57 {
"addr3", CT_STRING, ADDRESS_MAX_ADDRESS_LINE_LEN,
COL_NNUL,
"addr3" },
58 {
"addr4", CT_STRING, ADDRESS_MAX_ADDRESS_LINE_LEN,
COL_NNUL,
"addr4" },
59 {
"phone", CT_STRING, ADDRESS_MAX_PHONE_LEN,
COL_NNUL,
"phone" },
60 {
"fax", CT_STRING, ADDRESS_MAX_FAX_LEN,
COL_NNUL,
"fax" },
61 {
"email", CT_STRING, ADDRESS_MAX_EMAIL_LEN,
COL_NNUL,
"email" },
65 typedef void (*AddressSetterFunc)( gpointer,
GncAddress* );
66 typedef GncAddress* (*AddressGetterFunc)(
const gpointer );
76 AddressSetterFunc a_setter = (AddressSetterFunc)setter;
80 g_return_if_fail( be != NULL );
81 g_return_if_fail( row != NULL );
82 g_return_if_fail( pObject != NULL );
83 g_return_if_fail( table_row != NULL );
85 addr = gncAddressCreate( be->
book, NULL );
86 for ( subtable = col_table; subtable->
col_name != NULL; subtable++ )
89 val = gnc_sql_row_get_value_at_col_name( row, buf );
97 s = g_value_get_string( val );
111 setter = subtable->
setter;
113 (*setter)( addr, (
const gpointer)s );
118 qof_instance_increase_editlevel (pObject);
120 qof_instance_decrease_editlevel (pObject);
124 (*a_setter)( pObject, addr );
136 g_return_if_fail( be != NULL );
137 g_return_if_fail( table_row != NULL );
138 g_return_if_fail( pList != NULL );
140 for ( subtable_row = col_table; subtable_row->
col_name != NULL; subtable_row++ )
142 buf = g_strdup_printf(
"%s_%s", table_row->
col_name, subtable_row->
col_name );
145 info->
type = BCT_STRING;
150 *pList = g_list_append( *pList, info );
164 AddressGetterFunc getter;
167 g_return_if_fail( be != NULL );
168 g_return_if_fail( obj_name != NULL );
169 g_return_if_fail( pObject != NULL );
170 g_return_if_fail( table_row != NULL );
171 g_return_if_fail( value != NULL );
173 memset( value, 0,
sizeof( GValue ) );
181 addr = (*getter)( pObject );
183 g_value_init( value, gnc_address_get_type() );
184 g_value_set_object( value, addr );
192 GValue* subfield_value;
198 g_return_if_fail( be != NULL );
199 g_return_if_fail( obj_name != NULL );
200 g_return_if_fail( pObject != NULL );
201 g_return_if_fail( table_row != NULL );
203 memset( &value, 0,
sizeof( GValue ) );
204 get_gvalue_address( be, obj_name, pObject, table_row, &value );
206 if ( G_VALUE_TYPE(&value) != 0 )
208 addr = g_value_get_object( &value );
209 for ( subtable_row = col_table; subtable_row->
col_name != NULL; subtable_row++ )
211 subfield_value = g_new0( GValue, 1 );
219 s = (gchar*)(*getter)( addr, NULL );
221 g_value_init( subfield_value, G_TYPE_STRING );
224 g_value_set_string( subfield_value, s );
228 g_value_set_string( subfield_value,
"NULL" );
230 (*pList) = g_slist_append( (*pList), subfield_value );
237 add_address_col_info_to_list,
238 add_address_colname_to_list,
239 add_gvalue_address_to_slist
244 gnc_address_sql_initialize(
void )
const gchar * qof_param_name
QofAccessFunc gnc_sql_get_getter(QofIdTypeConst obj_name, const GncSqlColumnTableEntry *table_row)
#define G_LOG_DOMAIN
Functions providing the SX List as a plugin page.
const gchar * QofIdTypeConst
load and save data to SQL
void gnc_sql_register_col_type_handler(const gchar *colType, const GncSqlColumnTypeHandler *handler)
gpointer(* QofAccessFunc)(gpointer object, const QofParam *param)
GncSqlBasicColumnType type
All type declarations for the whole Gnucash engine.
const gchar * gobj_param_name
load and save address data to SQL
void(* QofSetterFunc)(gpointer, gpointer)
QofSetterFunc qof_class_get_parameter_setter(QofIdTypeConst obj_name, const char *parameter)
void gnc_sql_add_subtable_colnames_to_list(const GncSqlColumnTableEntry *table_row, const GncSqlColumnTableEntry *subtable, GList **pList)
const gchar * QofLogModule