r18805 - gnucash/trunk/src/backend/sql - GDate values weren't being properly fetched from objects to be saved in a database column if they were fetched as a gobject property.

Phil Longstaff plongstaff at code.gnucash.org
Wed Mar 3 18:34:49 EST 2010


Author: plongstaff
Date: 2010-03-03 18:34:49 -0500 (Wed, 03 Mar 2010)
New Revision: 18805
Trac: http://svn.gnucash.org/trac/changeset/18805

Modified:
   gnucash/trunk/src/backend/sql/gnc-backend-sql.c
Log:
GDate values weren't being properly fetched from objects to be saved in a database column if they were fetched as a gobject property.


Modified: gnucash/trunk/src/backend/sql/gnc-backend-sql.c
===================================================================
--- gnucash/trunk/src/backend/sql/gnc-backend-sql.c	2010-03-03 21:50:49 UTC (rev 18804)
+++ gnucash/trunk/src/backend/sql/gnc-backend-sql.c	2010-03-03 23:34:49 UTC (rev 18805)
@@ -1777,7 +1777,7 @@
 				const gpointer pObject,
                 const GncSqlColumnTableEntry* table_row, GSList** pList )
 {
-    GDate* date;
+    GDate* date = NULL;
     QofAccessFunc getter;
 	gchar* buf;
 	GValue* value;
@@ -1790,14 +1790,18 @@
     value = g_new0( GValue, 1 );
 	g_assert( value != NULL );
     (void)g_value_init( value, G_TYPE_STRING );
-    getter = gnc_sql_get_getter( obj_name, table_row );
-	if( getter != NULL ) {
-    	date = (GDate*)(*getter)( pObject, NULL );
-		if( g_date_valid( date ) ) {
-			buf = g_strdup_printf( "%04d%02d%02d",
-					g_date_get_year( date ), g_date_get_month( date ), g_date_get_day( date ) );
-    		g_value_take_string( value, buf );
-		}
+	if( table_row->gobj_param_name != NULL ) {
+		g_object_get( pObject, table_row->gobj_param_name, &date, NULL );
+	} else {
+    	getter = gnc_sql_get_getter( obj_name, table_row );
+	    if( getter != NULL ) {
+    	    date = (GDate*)(*getter)( pObject, NULL );
+        }
+    }
+	if( g_date_valid( date ) ) {
+		buf = g_strdup_printf( "%04d%02d%02d",
+				g_date_get_year( date ), g_date_get_month( date ), g_date_get_day( date ) );
+    	g_value_take_string( value, buf );
 	}
 
 	(*pList) = g_slist_append( (*pList), value );



More information about the gnucash-changes mailing list