libgda r3307 - in trunk: . libgda tools



Author: vivien
Date: Mon Feb  2 20:22:01 2009
New Revision: 3307
URL: http://svn.gnome.org/viewvc/libgda?rev=3307&view=rev

Log:
2009-02-02  Vivien Malerba <malerba gnome-db org>

        * tools/gda-sql.c: change the prompt from "cnc_name>" to "cnc_name[" when
        in a transaction

2009-02-02  Armin Burgmeier  <armin openismus com>

        * libgda/gda-data-access-wrapper.c
        (gda_data_access_wrapper_get_value_at): Don't rely on an existing
        row for models that support both forward- and backward iteration since
        rows are not cached in iter_row_changed_cb() in that case. Instead,
        recreate the row to fetch the requested value.


Modified:
   trunk/ChangeLog
   trunk/libgda/gda-data-access-wrapper.c
   trunk/tools/gda-sql.c

Modified: trunk/libgda/gda-data-access-wrapper.c
==============================================================================
--- trunk/libgda/gda-data-access-wrapper.c	(original)
+++ trunk/libgda/gda-data-access-wrapper.c	Mon Feb  2 20:22:01 2009
@@ -209,11 +209,6 @@
 
 	/* free memory */
 	if (model->priv) {
-		if (model->priv->rows) {
-			g_hash_table_destroy (model->priv->rows);
-			model->priv->rows = NULL;
-		}
-
 		if (model->priv->iter) {
 			g_signal_handlers_disconnect_by_func (G_OBJECT (model->priv->iter),
 							      G_CALLBACK (iter_row_changed_cb), model);
@@ -512,10 +507,17 @@
 				}
 			}
 
-			gda_row = g_hash_table_lookup (imodel->priv->rows, GINT_TO_POINTER (row));
+			if (! (imodel->priv->model_access_flags & GDA_DATA_MODEL_ACCESS_CURSOR_BACKWARD) ||
+			    ! (imodel->priv->model_access_flags & GDA_DATA_MODEL_ACCESS_CURSOR_FORWARD)) {
+				gda_row = g_hash_table_lookup (imodel->priv->rows, GINT_TO_POINTER (row));
 
-			if (gda_row)
+				if (gda_row)
+					return gda_row_get_value (gda_row, col);
+			}
+			else {
+				gda_row = create_new_row (imodel);
 				return gda_row_get_value (gda_row, col);
+			}
 		}
 	}
 

Modified: trunk/tools/gda-sql.c
==============================================================================
--- trunk/tools/gda-sql.c	(original)
+++ trunk/tools/gda-sql.c	Mon Feb  2 20:22:01 2009
@@ -1067,11 +1067,19 @@
 	gchar *prefix = NULL;
 	ConnectionSetting *cs;
 	g_assert (string);
+	gchar suffix = '>';
 
 	g_string_set_size (string, 0);
 	cs = get_current_connection_settings (console);
-	if (cs)
+	if (cs) {
 		prefix = cs->name;
+		if (cs->cnc) {
+			GdaTransactionStatus *ts;
+			ts = gda_connection_get_transaction_status (cs->cnc);
+			if (ts)
+				suffix='[';
+		}
+	}
 	else
 		prefix = "gda";
 
@@ -1080,11 +1088,11 @@
 		len = strlen (prefix);
 		for (i = 0; i < len; i++)
 			g_string_append_c (string, ' ');
-		g_string_append_c (string, '>');
+		g_string_append_c (string, suffix);
 		g_string_append_c (string, ' ');		
 	}
 	else 
-		g_string_append_printf (string, "%s> ", prefix);
+		g_string_append_printf (string, "%s%c ", prefix, suffix);
 }
 
 /*



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]