[libgda] Use gda_connection_internal_get_provider_data_error() when needed



commit 4ad60fd0a12fc85f56d2cdda7f9a0fbb4433a9b8
Author: Vivien Malerba <malerba gnome-db org>
Date:   Sat Nov 19 11:29:28 2011 +0100

    Use gda_connection_internal_get_provider_data_error() when needed

 libgda/sqlite/gda-sqlite-meta.c                    |   22 +++---
 libgda/sqlite/gda-sqlite-provider.c                |    4 +-
 libgda/sqlite/gda-sqlite-recordset.c               |    4 +-
 libgda/sqlite/virtual/gda-vconnection-data-model.c |    4 +-
 libgda/sqlite/virtual/gda-vprovider-data-model.c   |    3 +-
 libgda/thread-wrapper/gda-thread-meta.c            |    4 +-
 libgda/thread-wrapper/gda-thread-provider.c        |   38 ++++----
 providers/firebird/gda-firebird-provider.c         |   32 ++++----
 providers/firebird/gda-firebird-recordset.c        |    2 +-
 providers/firebird/gda-firebird-util.c             |    2 +-
 providers/jdbc/gda-jdbc-meta.c                     |    8 +-
 providers/jdbc/gda-jdbc-provider.c                 |   28 +++---
 providers/jdbc/gda-jdbc-recordset.c                |    2 +-
 providers/mysql/gda-mysql-provider.c               |   28 +++---
 providers/oracle/gda-oracle-meta.c                 |    6 +-
 providers/oracle/gda-oracle-provider.c             |   38 ++++----
 providers/oracle/gda-oracle-recordset.c            |    6 +-
 providers/oracle/gda-oracle-util.c                 |    2 +-
 providers/postgres/gda-postgres-ddl.c              |    4 +-
 providers/postgres/gda-postgres-provider.c         |   18 ++--
 providers/postgres/gda-postgres-recordset.c        |    2 +-
 providers/reuseable/mysql/gda-mysql-meta.c         |   52 ++++++------
 providers/reuseable/postgres/gda-postgres-meta.c   |   84 +++++++++---------
 .../skel-implementation/capi/gda-capi-provider.c   |   26 +++---
 providers/web/gda-web-meta.c                       |   92 ++++++++++----------
 providers/web/gda-web-provider.c                   |   22 +++---
 providers/web/gda-web-recordset.c                  |    2 +-
 27 files changed, 268 insertions(+), 267 deletions(-)
---
diff --git a/libgda/sqlite/gda-sqlite-meta.c b/libgda/sqlite/gda-sqlite-meta.c
index 628b998..7e09b72 100644
--- a/libgda/sqlite/gda-sqlite-meta.c
+++ b/libgda/sqlite/gda-sqlite-meta.c
@@ -469,7 +469,7 @@ _gda_sqlite_meta__udt (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *cnc
 	gint i, nrows;
 
 	/* get connection's private data */
-	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
@@ -524,7 +524,7 @@ _gda_sqlite_meta_udt (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *cnc,
 	GHashTable *added_hash;
 
 	/* get connection's private data */
-	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
@@ -1118,7 +1118,7 @@ _gda_sqlite_meta__columns (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection
 	gint i, nrows;
 	SqliteConnectionData *cdata;
 	
-	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
@@ -1200,7 +1200,7 @@ _gda_sqlite_meta_columns (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *
 	GdaDataModel *mod_model = NULL;
 	SqliteConnectionData *cdata;
 	
-	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
@@ -1470,7 +1470,7 @@ _gda_sqlite_meta__constraints_tab (G_GNUC_UNUSED GdaServerProvider *prov, GdaCon
 	gint i, nrows;
 	SqliteConnectionData *cdata;
 	
-	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
@@ -1552,7 +1552,7 @@ _gda_sqlite_meta_constraints_tab (G_GNUC_UNUSED GdaServerProvider *prov, GdaConn
 	GdaDataModel *mod_model = NULL;
 	SqliteConnectionData *cdata;
 	
-	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
@@ -1662,7 +1662,7 @@ _gda_sqlite_meta__constraints_ref (G_GNUC_UNUSED GdaServerProvider *prov, GdaCon
 	SqliteConnectionData *cdata;
 	gint fk_enforced = -1;
 	
-	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
@@ -1762,7 +1762,7 @@ _gda_sqlite_meta_constraints_ref (G_GNUC_UNUSED GdaServerProvider *prov, GdaConn
 	GdaDataModel *mod_model = NULL;
 	SqliteConnectionData *cdata;
 	
-	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
@@ -2007,7 +2007,7 @@ _gda_sqlite_meta__key_columns (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnect
 	gint i, nrows;
 	SqliteConnectionData *cdata;
 	
-	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
@@ -2123,7 +2123,7 @@ _gda_sqlite_meta_key_columns (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnecti
 	GdaDataModel *mod_model = NULL;
 	SqliteConnectionData *cdata;
 	
-	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
@@ -2244,7 +2244,7 @@ _gda_sqlite_meta_routines (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection
 	GdaDataModel *tmpmodel, *mod_model;
 	gint i, nrows;
 
-	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
diff --git a/libgda/sqlite/gda-sqlite-provider.c b/libgda/sqlite/gda-sqlite-provider.c
index 51a82a1..c109a6a 100644
--- a/libgda/sqlite/gda-sqlite-provider.c
+++ b/libgda/sqlite/gda-sqlite-provider.c
@@ -2465,7 +2465,7 @@ real_prepare (GdaServerProvider *provider, GdaConnection *cnc, GdaStatement *stm
 	gint nb_rows_added;
 
 	/* get SQLite's private data */
-	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return NULL;
 
@@ -2883,7 +2883,7 @@ gda_sqlite_provider_statement_execute (GdaServerProvider *provider, GdaConnectio
 		*last_inserted_row = NULL;
 
 	/* get SQLite's private data */
-	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return NULL;
 
diff --git a/libgda/sqlite/gda-sqlite-recordset.c b/libgda/sqlite/gda-sqlite-recordset.c
index 83f9f84..9722675 100644
--- a/libgda/sqlite/gda-sqlite-recordset.c
+++ b/libgda/sqlite/gda-sqlite-recordset.c
@@ -326,8 +326,8 @@ fetch_next_sqlite_row (GdaSqliteRecordset *model, gboolean do_store, GError **er
 	GdaSqlitePStmt *ps;
 	GdaRow *prow = NULL;
 
-	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data 
-		(gda_data_select_get_connection ((GdaDataSelect*) model));
+	cdata = (SqliteConnectionData*) gda_connection_internal_get_provider_data_error 
+		(gda_data_select_get_connection ((GdaDataSelect*) model), error);
 	if (!cdata)
 		return NULL;
 	ps = GDA_SQLITE_PSTMT (GDA_DATA_SELECT (model)->prep_stmt);
diff --git a/libgda/sqlite/virtual/gda-vconnection-data-model.c b/libgda/sqlite/virtual/gda-vconnection-data-model.c
index 7a2472d..f58cb82 100644
--- a/libgda/sqlite/virtual/gda-vconnection-data-model.c
+++ b/libgda/sqlite/virtual/gda-vconnection-data-model.c
@@ -301,7 +301,7 @@ gda_vconnection_data_model_add (GdaVconnectionDataModel *cnc, GdaVconnectionData
 		spec->create_filtered_model_func = NULL;
 	}
 
-	scnc = (SqliteConnectionData*) gda_connection_internal_get_provider_data ((GdaConnection *) cnc);
+	scnc = (SqliteConnectionData*) gda_connection_internal_get_provider_data_error ((GdaConnection *) cnc, error);
 	if (!scnc) 
 		return FALSE;
 
@@ -363,7 +363,7 @@ gda_vconnection_data_model_remove (GdaVconnectionDataModel *cnc, const gchar *ta
 	g_return_val_if_fail (GDA_IS_VCONNECTION_DATA_MODEL (cnc), FALSE);
 	g_return_val_if_fail (table_name && *table_name, FALSE);
 
-	scnc = (SqliteConnectionData*) gda_connection_internal_get_provider_data ((GdaConnection *) cnc);
+	scnc = (SqliteConnectionData*) gda_connection_internal_get_provider_data_error ((GdaConnection *) cnc, error);
 	if (!scnc) 
 		return FALSE;
 
diff --git a/libgda/sqlite/virtual/gda-vprovider-data-model.c b/libgda/sqlite/virtual/gda-vprovider-data-model.c
index 6142af6..7ca011e 100644
--- a/libgda/sqlite/virtual/gda-vprovider-data-model.c
+++ b/libgda/sqlite/virtual/gda-vprovider-data-model.c
@@ -333,7 +333,8 @@ gda_vprovider_data_model_open_connection (GdaServerProvider *provider, GdaConnec
 	scnc = (SqliteConnectionData*) gda_connection_internal_get_provider_data ((GdaConnection *) cnc);
 	if (!scnc) {
 		gda_connection_close_no_warning (cnc);
-
+		gda_connection_add_event_string (cnc,
+						 _("Connection is closed"));
 		return FALSE;
 	}
 
diff --git a/libgda/thread-wrapper/gda-thread-meta.c b/libgda/thread-wrapper/gda-thread-meta.c
index af23fbf..0a48a28 100644
--- a/libgda/thread-wrapper/gda-thread-meta.c
+++ b/libgda/thread-wrapper/gda-thread-meta.c
@@ -42,7 +42,7 @@ typedef struct {
 	BasicThreadData wdata; \
 	gpointer res; \
 	guint jid; \
-        cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data ((cnc)); \
+        cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error ((cnc),(error)); \
 	if (!cdata) \
 		return FALSE; \
 	wdata.prov = cdata->cnc_provider; \
@@ -80,7 +80,7 @@ typedef struct {
 	DetailedThreadData wdata; \
 	gpointer res; \
 	guint jid; \
-        cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data ((cnc)); \
+        cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error ((cnc),(error)); \
 	if (!cdata) \
 		return FALSE; \
 	wdata.prov = cdata->cnc_provider; \
diff --git a/libgda/thread-wrapper/gda-thread-provider.c b/libgda/thread-wrapper/gda-thread-provider.c
index 73cd443..db67f36 100644
--- a/libgda/thread-wrapper/gda-thread-provider.c
+++ b/libgda/thread-wrapper/gda-thread-provider.c
@@ -820,7 +820,7 @@ gda_thread_provider_create_operation (GdaServerProvider *provider, GdaConnection
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return NULL;
 	
@@ -875,7 +875,7 @@ gda_thread_provider_render_operation (GdaServerProvider *provider, GdaConnection
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return NULL;
 	
@@ -939,7 +939,7 @@ gda_thread_provider_perform_operation (GdaServerProvider *provider, GdaConnectio
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -996,7 +996,7 @@ gda_thread_provider_begin_transaction (GdaServerProvider *provider, GdaConnectio
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -1053,7 +1053,7 @@ gda_thread_provider_commit_transaction (GdaServerProvider *provider, GdaConnecti
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -1102,7 +1102,7 @@ gda_thread_provider_rollback_transaction (GdaServerProvider *provider, GdaConnec
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -1151,7 +1151,7 @@ gda_thread_provider_add_savepoint (GdaServerProvider *provider, GdaConnection *c
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -1200,7 +1200,7 @@ gda_thread_provider_rollback_savepoint (GdaServerProvider *provider, GdaConnecti
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -1249,7 +1249,7 @@ gda_thread_provider_delete_savepoint (GdaServerProvider *provider, GdaConnection
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -1487,7 +1487,7 @@ gda_thread_provider_statement_to_sql (GdaServerProvider *provider, GdaConnection
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return NULL;
 
@@ -1544,7 +1544,7 @@ gda_thread_provider_statement_prepare (GdaServerProvider *provider, GdaConnectio
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (GDA_IS_STATEMENT (stmt), FALSE);
 
-	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -1635,7 +1635,7 @@ gda_thread_provider_statement_execute (GdaServerProvider *provider, GdaConnectio
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (GDA_IS_STATEMENT (stmt), FALSE);
 
-	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return NULL;
 
@@ -1708,7 +1708,7 @@ gda_thread_provider_handle_async (GdaServerProvider *provider, GdaConnection *cn
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1782,7 +1782,7 @@ gda_thread_provider_xa_start (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -1833,7 +1833,7 @@ gda_thread_provider_xa_end (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -1883,7 +1883,7 @@ gda_thread_provider_xa_prepare (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -1934,7 +1934,7 @@ gda_thread_provider_xa_commit (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -1984,7 +1984,7 @@ gda_thread_provider_xa_rollback (GdaServerProvider *provider, GdaConnection *cnc
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -2034,7 +2034,7 @@ gda_thread_provider_xa_recover (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (ThreadConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
diff --git a/providers/firebird/gda-firebird-provider.c b/providers/firebird/gda-firebird-provider.c
index 6dd008c..1d14f28 100644
--- a/providers/firebird/gda-firebird-provider.c
+++ b/providers/firebird/gda-firebird-provider.c
@@ -424,7 +424,7 @@ gda_firebird_provider_close_connection (GdaServerProvider *provider, GdaConnecti
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
 	/* Close the connection using the C API */
-	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -451,7 +451,7 @@ gda_firebird_provider_get_server_version (GdaServerProvider *provider, GdaConnec
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), NULL);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, NULL);
 
-	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -471,7 +471,7 @@ gda_firebird_provider_get_database (GdaServerProvider *provider, GdaConnection *
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), NULL);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, NULL);
 
-	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return NULL;
 
@@ -679,7 +679,7 @@ gda_firebird_provider_begin_transaction (GdaServerProvider *provider, GdaConnect
 		return FALSE;
 	}
 
-	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -717,7 +717,7 @@ gda_firebird_provider_commit_transaction (GdaServerProvider *provider, GdaConnec
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -753,7 +753,7 @@ gda_firebird_provider_rollback_transaction (GdaServerProvider *provider, GdaConn
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -774,7 +774,7 @@ gda_firebird_provider_add_savepoint (GdaServerProvider *provider, GdaConnection
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -795,7 +795,7 @@ gda_firebird_provider_rollback_savepoint (GdaServerProvider *provider, GdaConnec
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -816,7 +816,7 @@ gda_firebird_provider_delete_savepoint (GdaServerProvider *provider, GdaConnecti
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1054,7 +1054,7 @@ gda_firebird_provider_statement_execute (GdaServerProvider *provider, GdaConnect
                 return FALSE;
 	}
 
-	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1171,7 +1171,7 @@ gda_firebird_provider_xa_start (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1193,7 +1193,7 @@ gda_firebird_provider_xa_end (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1214,7 +1214,7 @@ gda_firebird_provider_xa_prepare (GdaServerProvider *provider, GdaConnection *cn
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1236,7 +1236,7 @@ gda_firebird_provider_xa_commit (GdaServerProvider *provider, GdaConnection *cnc
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1257,7 +1257,7 @@ gda_firebird_provider_xa_rollback (GdaServerProvider *provider, GdaConnection *c
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1279,7 +1279,7 @@ gda_firebird_provider_xa_recover (GdaServerProvider *provider, GdaConnection *cn
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), NULL);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, NULL);
 
-	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return NULL;
 
diff --git a/providers/firebird/gda-firebird-recordset.c b/providers/firebird/gda-firebird-recordset.c
index 1f1d29a..d387308 100644
--- a/providers/firebird/gda-firebird-recordset.c
+++ b/providers/firebird/gda-firebird-recordset.c
@@ -152,7 +152,7 @@ gda_firebird_recordset_new (GdaConnection *cnc, GdaFirebirdPStmt *ps, GdaDataMod
         g_return_val_if_fail (GDA_IS_CONNECTION (cnc), NULL);
         g_return_val_if_fail (ps != NULL, NULL);
 
-	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return NULL;
 
diff --git a/providers/firebird/gda-firebird-util.c b/providers/firebird/gda-firebird-util.c
index 0b70996..bf4eea7 100644
--- a/providers/firebird/gda-firebird-util.c
+++ b/providers/firebird/gda-firebird-util.c
@@ -29,7 +29,7 @@ _gda_firebird_make_error (GdaConnection *cnc, const gint statement_type)
 
         g_return_val_if_fail (GDA_IS_CONNECTION (cnc), NULL);
 
-	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (FirebirdConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
diff --git a/providers/jdbc/gda-jdbc-meta.c b/providers/jdbc/gda-jdbc-meta.c
index 1e98f4c..8f64061 100644
--- a/providers/jdbc/gda-jdbc-meta.c
+++ b/providers/jdbc/gda-jdbc-meta.c
@@ -81,7 +81,7 @@ _gda_jdbc_meta__info (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *cnc,
 	gboolean jni_detach;
 
 	/* Get private data */
-	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
@@ -322,7 +322,7 @@ _gda_jdbc_meta_schemata (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *c
 	jstring catalog = NULL, schema = NULL;
 
 	/* Get private data */
-	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
@@ -403,7 +403,7 @@ _gda_jdbc_meta_tables_views (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnectio
 	jstring catalog = NULL, schema = NULL, name = NULL;
 
 	/* Get private data */
-	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
@@ -519,7 +519,7 @@ _gda_jdbc_meta_columns (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *cn
 	jstring catalog = NULL, schema = NULL, table = NULL;
 
 	/* Get private data */
-	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
diff --git a/providers/jdbc/gda-jdbc-provider.c b/providers/jdbc/gda-jdbc-provider.c
index 0ac3bc2..12ce235 100644
--- a/providers/jdbc/gda-jdbc-provider.c
+++ b/providers/jdbc/gda-jdbc-provider.c
@@ -610,7 +610,7 @@ gda_jdbc_provider_begin_transaction (GdaServerProvider *provider, GdaConnection
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -651,7 +651,7 @@ gda_jdbc_provider_commit_transaction (GdaServerProvider *provider, GdaConnection
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -692,7 +692,7 @@ gda_jdbc_provider_rollback_transaction (GdaServerProvider *provider, GdaConnecti
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -734,7 +734,7 @@ gda_jdbc_provider_add_savepoint (GdaServerProvider *provider, GdaConnection *cnc
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -786,7 +786,7 @@ gda_jdbc_provider_rollback_savepoint (GdaServerProvider *provider, GdaConnection
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -838,7 +838,7 @@ gda_jdbc_provider_delete_savepoint (GdaServerProvider *provider, GdaConnection *
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1065,7 +1065,7 @@ gda_jdbc_provider_statement_prepare (GdaServerProvider *provider, GdaConnection
 		return TRUE;
 
 	/* Get private data */
-	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1232,7 +1232,7 @@ gda_jdbc_provider_statement_execute (GdaServerProvider *provider, GdaConnection
                 *last_inserted_row = NULL;
 
 	/* Get private data */
-	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return NULL;
 
@@ -1650,7 +1650,7 @@ gda_jdbc_provider_xa_start (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1676,7 +1676,7 @@ gda_jdbc_provider_xa_end (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1697,7 +1697,7 @@ gda_jdbc_provider_xa_prepare (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1719,7 +1719,7 @@ gda_jdbc_provider_xa_commit (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1740,7 +1740,7 @@ gda_jdbc_provider_xa_rollback (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1762,7 +1762,7 @@ gda_jdbc_provider_xa_recover (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), NULL);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, NULL);
 
-	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return NULL;
 
diff --git a/providers/jdbc/gda-jdbc-recordset.c b/providers/jdbc/gda-jdbc-recordset.c
index 70df56e..098d769 100644
--- a/providers/jdbc/gda-jdbc-recordset.c
+++ b/providers/jdbc/gda-jdbc-recordset.c
@@ -231,7 +231,7 @@ gda_jdbc_recordset_new (GdaConnection *cnc, GdaJdbcPStmt *ps, GdaSet *exec_param
 	else
 		ps = gda_jdbc_pstmt_new (NULL);
 
-	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (JdbcConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return NULL;
 
diff --git a/providers/mysql/gda-mysql-provider.c b/providers/mysql/gda-mysql-provider.c
index 18ac6b9..bd67df6 100644
--- a/providers/mysql/gda-mysql-provider.c
+++ b/providers/mysql/gda-mysql-provider.c
@@ -1070,7 +1070,7 @@ gda_mysql_provider_begin_transaction (GdaServerProvider        *provider,
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1124,7 +1124,7 @@ gda_mysql_provider_commit_transaction (GdaServerProvider  *provider,
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1154,7 +1154,7 @@ gda_mysql_provider_rollback_transaction (GdaServerProvider  *provider,
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1183,7 +1183,7 @@ gda_mysql_provider_add_savepoint (GdaServerProvider  *provider,
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1206,7 +1206,7 @@ gda_mysql_provider_rollback_savepoint (GdaServerProvider  *provider,
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1229,7 +1229,7 @@ gda_mysql_provider_delete_savepoint (GdaServerProvider  *provider,
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1750,7 +1750,7 @@ real_prepare (GdaServerProvider *provider, GdaConnection *cnc, GdaStatement *stm
 	GdaMysqlPStmt *ps = NULL;
 	MysqlConnectionData *cdata;
 
-	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return NULL;
 
@@ -2133,7 +2133,7 @@ gda_mysql_provider_statement_execute (GdaServerProvider               *provider,
 	if (last_inserted_row)
 		*last_inserted_row = NULL;
 
-	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -2774,7 +2774,7 @@ gda_mysql_provider_xa_start (GdaServerProvider         *provider,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -2798,7 +2798,7 @@ gda_mysql_provider_xa_end (GdaServerProvider         *provider,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -2821,7 +2821,7 @@ gda_mysql_provider_xa_prepare (GdaServerProvider         *provider,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -2845,7 +2845,7 @@ gda_mysql_provider_xa_commit (GdaServerProvider         *provider,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -2868,7 +2868,7 @@ gda_mysql_provider_xa_rollback (GdaServerProvider         *provider,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -2891,7 +2891,7 @@ gda_mysql_provider_xa_recover (GdaServerProvider  *provider,
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), NULL);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, NULL);
 
-	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (MysqlConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return NULL;
 
diff --git a/providers/oracle/gda-oracle-meta.c b/providers/oracle/gda-oracle-meta.c
index 713705a..d3e4671 100644
--- a/providers/oracle/gda-oracle-meta.c
+++ b/providers/oracle/gda-oracle-meta.c
@@ -382,7 +382,7 @@ _gda_oracle_meta__tables_views (GdaServerProvider *prov, GdaConnection *cnc,
         gboolean retval = TRUE;
 
         OracleConnectionData *cdata;
-        cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+        cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
         if (!cdata)
                 return FALSE;
 
@@ -427,7 +427,7 @@ _gda_oracle_meta_tables_views (GdaServerProvider *prov, GdaConnection *cnc,
         gboolean retval = TRUE;
 
         OracleConnectionData *cdata;
-        cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+        cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
         if (!cdata)
                 return FALSE;
 
@@ -519,7 +519,7 @@ _gda_oracle_meta__columns (GdaServerProvider *prov, GdaConnection *cnc,
 	gint i, nrows;
 	OracleConnectionData *cdata;
 
-	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
diff --git a/providers/oracle/gda-oracle-provider.c b/providers/oracle/gda-oracle-provider.c
index 734b4f4..1c336c1 100644
--- a/providers/oracle/gda-oracle-provider.c
+++ b/providers/oracle/gda-oracle-provider.c
@@ -370,7 +370,7 @@ execute_raw_command (GdaConnection *cnc, const gchar *sql)
 	OCIStmt *hstmt = NULL;
 	int result;
 
-	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -745,7 +745,7 @@ gda_oracle_provider_close_connection (GdaServerProvider *provider, GdaConnection
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
 	/* Close the connection using the C API */
-	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -780,7 +780,7 @@ gda_oracle_provider_get_server_version (GdaServerProvider *provider, GdaConnecti
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), NULL);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, NULL);
 
-	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return NULL;
 
@@ -800,7 +800,7 @@ gda_oracle_provider_get_database (GdaServerProvider *provider, GdaConnection *cn
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), NULL);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, NULL);
 
-	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return NULL;
 	TO_IMPLEMENT;
@@ -999,7 +999,7 @@ gda_oracle_provider_begin_transaction (GdaServerProvider *provider, GdaConnectio
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1021,7 +1021,7 @@ gda_oracle_provider_commit_transaction (GdaServerProvider *provider, GdaConnecti
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1043,7 +1043,7 @@ gda_oracle_provider_rollback_transaction (GdaServerProvider *provider, GdaConnec
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1065,7 +1065,7 @@ gda_oracle_provider_add_savepoint (GdaServerProvider *provider, GdaConnection *c
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1086,7 +1086,7 @@ gda_oracle_provider_rollback_savepoint (GdaServerProvider *provider, GdaConnecti
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1107,7 +1107,7 @@ gda_oracle_provider_delete_savepoint (GdaServerProvider *provider, GdaConnection
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1665,7 +1665,7 @@ gda_oracle_provider_statement_prepare (GdaServerProvider *provider, GdaConnectio
 	OCIStmt *hstmt;
 	int result;
 
-	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1796,7 +1796,7 @@ gda_oracle_provider_statement_execute (GdaServerProvider *provider, GdaConnectio
                 *last_inserted_row = NULL;
 
 	/* Get private data */
-	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -2281,7 +2281,7 @@ gda_oracle_provider_xa_start (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -2303,7 +2303,7 @@ gda_oracle_provider_xa_end (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -2324,7 +2324,7 @@ gda_oracle_provider_xa_prepare (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -2346,7 +2346,7 @@ gda_oracle_provider_xa_commit (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -2367,7 +2367,7 @@ gda_oracle_provider_xa_rollback (GdaServerProvider *provider, GdaConnection *cnc
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -2389,7 +2389,7 @@ gda_oracle_provider_xa_recover (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), NULL);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, NULL);
 
-	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return NULL;
 
@@ -2525,7 +2525,7 @@ gda_oracle_identifier_quote (GdaServerProvider *provider, GdaConnection *cnc,
         OracleConnectionData *cdata = NULL;
 
         if (cnc)
-                cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+                cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 
         kwfunc = _gda_oracle_get_reserved_keyword_func (cdata);
 
diff --git a/providers/oracle/gda-oracle-recordset.c b/providers/oracle/gda-oracle-recordset.c
index 40c0c7d..20bfd52 100644
--- a/providers/oracle/gda-oracle-recordset.c
+++ b/providers/oracle/gda-oracle-recordset.c
@@ -194,7 +194,7 @@ gda_oracle_recordset_new (GdaConnection *cnc, GdaOraclePStmt *ps, GdaSet *exec_p
         g_return_val_if_fail (GDA_IS_CONNECTION (cnc), NULL);
         g_return_val_if_fail (ps != NULL, NULL);
 
-	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return NULL;
 
@@ -513,7 +513,7 @@ fetch_next_oracle_row (GdaOracleRecordset *model, G_GNUC_UNUSED gboolean do_stor
 	GdaConnection *cnc;
 
 	cnc = gda_data_select_get_connection ((GdaDataSelect*) model);
-	cdata = (OracleConnectionData*)	gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*)	gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return NULL;
 
@@ -597,7 +597,7 @@ gda_oracle_recordset_fetch_random (GdaDataSelect *model, GdaRow **prow, gint row
 
 	imodel = GDA_ORACLE_RECORDSET (model);
 	cnc = gda_data_select_get_connection (model);
-	cdata = (OracleConnectionData*)	gda_connection_internal_get_provider_data (cnc);
+	cdata = (OracleConnectionData*)	gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return TRUE;
 
diff --git a/providers/oracle/gda-oracle-util.c b/providers/oracle/gda-oracle-util.c
index 4c12032..415783f 100644
--- a/providers/oracle/gda-oracle-util.c
+++ b/providers/oracle/gda-oracle-util.c
@@ -616,7 +616,7 @@ _gda_oracle_set_value (GValue *value,
 		gint result;
 
 		/* REM: we need to make a "copy" of the lob locator to give to the GdaOracleblobOp object */
-		cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data (cnc);
+		cdata = (OracleConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 		if (!cdata) {
 			gda_connection_add_event_string (cnc, _("Invalid Oracle handle"));
 			gda_value_set_null (value);
diff --git a/providers/postgres/gda-postgres-ddl.c b/providers/postgres/gda-postgres-ddl.c
index 6ea5612..f8d64cd 100644
--- a/providers/postgres/gda-postgres-ddl.c
+++ b/providers/postgres/gda-postgres-ddl.c
@@ -778,7 +778,7 @@ gda_postgres_render_CREATE_USER (GdaServerProvider *provider, GdaConnection *cnc
 	if (cnc) {
 		g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 		g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
-		cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data (cnc);
+		cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	}
 	if (cdata && (cdata->reuseable->version_float < 8.1))
 		use_role = FALSE;
@@ -983,7 +983,7 @@ gda_postgres_render_DROP_USER (GdaServerProvider *provider, GdaConnection *cnc,
 	if (cnc) {
 		g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 		g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
-		cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data (cnc);
+		cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	}
 	if (cdata && (cdata->reuseable->version_float < 8.1))
 		use_role = FALSE;
diff --git a/providers/postgres/gda-postgres-provider.c b/providers/postgres/gda-postgres-provider.c
index e407647..64f0c98 100644
--- a/providers/postgres/gda-postgres-provider.c
+++ b/providers/postgres/gda-postgres-provider.c
@@ -718,7 +718,7 @@ gda_postgres_provider_create_operation (GdaServerProvider *provider, GdaConnecti
 	if (cnc) {
 		g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 		g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
-		cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data (cnc);
+		cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	}
 
 	if (type == GDA_SERVER_OPERATION_CREATE_USER) {
@@ -986,7 +986,7 @@ gda_postgres_provider_begin_transaction (GdaServerProvider *provider, GdaConnect
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
@@ -1070,7 +1070,7 @@ gda_postgres_provider_commit_transaction (GdaServerProvider *provider, GdaConnec
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
@@ -1094,7 +1094,7 @@ gda_postgres_provider_rollback_transaction (GdaServerProvider *provider,
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
@@ -1118,7 +1118,7 @@ gda_postgres_provider_add_savepoint (GdaServerProvider *provider, GdaConnection
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (name && *name, FALSE);
 
-	cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
@@ -1168,7 +1168,7 @@ gda_postgres_provider_rollback_savepoint (GdaServerProvider *provider, GdaConnec
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (name && *name, FALSE);
 
-	cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
@@ -1218,7 +1218,7 @@ gda_postgres_provider_delete_savepoint (GdaServerProvider *provider, GdaConnecti
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (name && *name, FALSE);
 
-	cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
@@ -1494,7 +1494,7 @@ gda_postgres_provider_statement_prepare (GdaServerProvider *provider, GdaConnect
 		return TRUE;
 
 	/* get private connection data */
-	cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 
@@ -1820,7 +1820,7 @@ gda_postgres_provider_statement_execute (GdaServerProvider *provider, GdaConnect
 	if (last_inserted_row)
 		*last_inserted_row = NULL;
 
-	cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return NULL;
 
diff --git a/providers/postgres/gda-postgres-recordset.c b/providers/postgres/gda-postgres-recordset.c
index 0a0229a..0e5df2c 100644
--- a/providers/postgres/gda-postgres-recordset.c
+++ b/providers/postgres/gda-postgres-recordset.c
@@ -682,7 +682,7 @@ set_value (GdaConnection *cnc, GdaRow *row, GValue *value, GType type, const gch
 		PostgresConnectionData *cdata;
 		gboolean valueset = FALSE;
 
-		cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data (cnc);
+		cdata = (PostgresConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 		if (cdata) {
 			if ((thevalue[0] == '\\') && (thevalue[1] == 'x')) {
 				guint len;
diff --git a/providers/reuseable/mysql/gda-mysql-meta.c b/providers/reuseable/mysql/gda-mysql-meta.c
index c40c3f0..0eee4b0 100644
--- a/providers/reuseable/mysql/gda-mysql-meta.c
+++ b/providers/reuseable/mysql/gda-mysql-meta.c
@@ -292,7 +292,7 @@ _gda_mysql_meta__info (G_GNUC_UNUSED GdaServerProvider  *prov,
 	GdaDataModel *model;
         gboolean retval;
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -365,7 +365,7 @@ _gda_mysql_meta__btypes (G_GNUC_UNUSED GdaServerProvider  *prov,
         GdaDataModel *model;
         gboolean retval = TRUE;
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -604,7 +604,7 @@ _gda_mysql_meta__character_sets (G_GNUC_UNUSED GdaServerProvider  *prov,
 	GdaDataModel *model;
 	gboolean retval;
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -640,7 +640,7 @@ _gda_mysql_meta_character_sets (G_GNUC_UNUSED GdaServerProvider  *prov,
 	GdaDataModel *model;
 	gboolean retval;
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -679,7 +679,7 @@ _gda_mysql_meta__schemata (G_GNUC_UNUSED GdaServerProvider  *prov,
 	GdaDataModel *model;
 	gboolean retval;
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -713,7 +713,7 @@ _gda_mysql_meta_schemata (G_GNUC_UNUSED GdaServerProvider  *prov,
 	GdaDataModel *model;
 	gboolean retval;
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -770,7 +770,7 @@ _gda_mysql_meta__tables_views (G_GNUC_UNUSED GdaServerProvider  *prov,
 	gboolean retval;
 	/* Check correct mysql server version. */
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if ((rdata->version_long == 0) && ! _gda_mysql_compute_version (cnc, rdata, error))
@@ -833,7 +833,7 @@ _gda_mysql_meta_tables_views (G_GNUC_UNUSED GdaServerProvider  *prov,
 	gboolean retval;
 	/* Check correct mysql server version. */
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if ((rdata->version_long == 0) && ! _gda_mysql_compute_version (cnc, rdata, error))
@@ -1069,7 +1069,7 @@ _gda_mysql_meta__columns (G_GNUC_UNUSED GdaServerProvider  *prov,
 	gboolean retval = TRUE;
 	/* Check correct mysql server version. */
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if ((rdata->version_long == 0) && ! _gda_mysql_compute_version (cnc, rdata, error))
@@ -1135,7 +1135,7 @@ _gda_mysql_meta_columns (G_GNUC_UNUSED GdaServerProvider  *prov,
 	gboolean retval;
 	/* Check correct mysql server version. */
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if ((rdata->version_long == 0) && ! _gda_mysql_compute_version (cnc, rdata, error))
@@ -1206,7 +1206,7 @@ _gda_mysql_meta__view_cols (G_GNUC_UNUSED GdaServerProvider  *prov,
 	gboolean retval;
 	/* Check correct mysql server version. */
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if ((rdata->version_long == 0) && ! _gda_mysql_compute_version (cnc, rdata, error))
@@ -1248,7 +1248,7 @@ _gda_mysql_meta_view_cols (G_GNUC_UNUSED GdaServerProvider  *prov,
 	GdaDataModel *model;
 	gboolean retval;
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -1285,7 +1285,7 @@ _gda_mysql_meta__constraints_tab (G_GNUC_UNUSED GdaServerProvider  *prov,
 	GdaDataModel *model;
 	gboolean retval;
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -1321,7 +1321,7 @@ _gda_mysql_meta_constraints_tab (G_GNUC_UNUSED GdaServerProvider  *prov,
 	GdaDataModel *model;
 	gboolean retval;
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -1381,7 +1381,7 @@ _gda_mysql_meta__constraints_ref (G_GNUC_UNUSED GdaServerProvider  *prov,
 {
 	GdaMysqlReuseable *rdata;
 
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	g_return_val_if_fail (rdata, FALSE);
 
 	if ((rdata->version_long == 0) && ! _gda_mysql_compute_version (cnc, rdata, error))
@@ -1425,7 +1425,7 @@ _gda_mysql_meta_constraints_ref (G_GNUC_UNUSED GdaServerProvider  *prov,
 {
 	GdaMysqlReuseable *rdata;
 
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	g_return_val_if_fail (rdata, FALSE);
 
 	if ((rdata->version_long == 0) && ! _gda_mysql_compute_version (cnc, rdata, error))
@@ -1478,7 +1478,7 @@ _gda_mysql_meta__key_columns (G_GNUC_UNUSED GdaServerProvider  *prov,
 	GdaDataModel *model;
 	gboolean retval;
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -1515,7 +1515,7 @@ _gda_mysql_meta_key_columns (G_GNUC_UNUSED GdaServerProvider  *prov,
 	gboolean retval;
 	/* Check correct mysql server version. */
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if ((rdata->version_long == 0) && ! _gda_mysql_compute_version (cnc, rdata, error))
@@ -1592,7 +1592,7 @@ _gda_mysql_meta__triggers (G_GNUC_UNUSED GdaServerProvider  *prov,
 	gboolean retval;
 	/* Check correct mysql server version. */
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if ((rdata->version_long == 0) && ! _gda_mysql_compute_version (cnc, rdata, error))
@@ -1635,7 +1635,7 @@ _gda_mysql_meta_triggers (G_GNUC_UNUSED GdaServerProvider  *prov,
 	gboolean retval;
 	/* Check correct mysql server version. */
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if ((rdata->version_long == 0) && ! _gda_mysql_compute_version (cnc, rdata, error))
@@ -1679,7 +1679,7 @@ _gda_mysql_meta__routines (G_GNUC_UNUSED GdaServerProvider  *prov,
 	GdaDataModel *model;
 	gboolean retval;
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -1715,7 +1715,7 @@ _gda_mysql_meta_routines (G_GNUC_UNUSED GdaServerProvider  *prov,
 	gboolean retval;
 	/* Check correct mysql server version. */
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if ((rdata->version_long == 0) && ! _gda_mysql_compute_version (cnc, rdata, error))
@@ -1814,7 +1814,7 @@ _gda_mysql_meta__indexes_tab (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnecti
 	GdaDataModel *model;
 	gboolean retval;
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	/* Check correct mysql server version. */
@@ -1854,7 +1854,7 @@ _gda_mysql_meta_indexes_tab (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnectio
 	gboolean retval;
 	/* Check correct mysql server version. */
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if ((rdata->version_long == 0) && ! _gda_mysql_compute_version (cnc, rdata, error))
@@ -1905,7 +1905,7 @@ _gda_mysql_meta__index_cols (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnectio
 	GdaDataModel *model;
 	gboolean retval;
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	/* Check correct mysql server version. */
@@ -1945,7 +1945,7 @@ _gda_mysql_meta_index_cols (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection
 	gboolean retval;
 	/* Check correct mysql server version. */
 	GdaMysqlReuseable *rdata;
-	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_MYSQL_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if ((rdata->version_long == 0) && ! _gda_mysql_compute_version (cnc, rdata, error))
diff --git a/providers/reuseable/postgres/gda-postgres-meta.c b/providers/reuseable/postgres/gda-postgres-meta.c
index 2d83e1c..97dfc9c 100644
--- a/providers/reuseable/postgres/gda-postgres-meta.c
+++ b/providers/reuseable/postgres/gda-postgres-meta.c
@@ -321,7 +321,7 @@ _gda_postgres_meta__info (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *
 	gboolean retval;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -352,7 +352,7 @@ _gda_postgres_meta__btypes (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection
 	gint i, nrows;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -411,7 +411,7 @@ _gda_postgres_meta__udt (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *c
 	gboolean retval;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -440,7 +440,7 @@ _gda_postgres_meta_udt (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *cn
 	gboolean retval = TRUE;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -472,7 +472,7 @@ _gda_postgres_meta__udt_cols (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnecti
 	gboolean retval;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -502,7 +502,7 @@ _gda_postgres_meta_udt_cols (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnectio
 	gboolean retval = TRUE;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -535,7 +535,7 @@ _gda_postgres_meta__enums (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection
 {
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if (rdata->version_float >= 8.3)
@@ -552,7 +552,7 @@ _gda_postgres_meta_enums (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *
 {
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if (rdata->version_float >= 8.3)
@@ -569,7 +569,7 @@ _gda_postgres_meta__domains (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnectio
 	gboolean retval;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -598,7 +598,7 @@ _gda_postgres_meta_domains (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection
 	gboolean retval = TRUE;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -631,7 +631,7 @@ _gda_postgres_meta__constraints_dom (G_GNUC_UNUSED GdaServerProvider *prov, GdaC
 	gboolean retval;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -661,7 +661,7 @@ _gda_postgres_meta_constraints_dom (G_GNUC_UNUSED GdaServerProvider *prov, GdaCo
 	gboolean retval = TRUE;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -697,7 +697,7 @@ _gda_postgres_meta__el_types (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnecti
 
 	/* check correct postgres server version */
 	GdaPostgresReuseable *rdata;
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if (rdata->version_float < 8.2) {
@@ -731,7 +731,7 @@ _gda_postgres_meta_el_types (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnectio
 	gboolean retval;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -838,7 +838,7 @@ _gda_postgres_meta__schemata (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnecti
 	gboolean retval;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -867,7 +867,7 @@ _gda_postgres_meta_schemata (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnectio
 	gboolean retval;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -916,7 +916,7 @@ _gda_postgres_meta__tables_views (G_GNUC_UNUSED GdaServerProvider *prov, GdaConn
 
 	/* check correct postgres server version */
 	GdaPostgresReuseable *rdata;
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if ((rdata->version_float == 0) && ! _gda_postgres_compute_version (cnc, rdata, error))
@@ -974,7 +974,7 @@ _gda_postgres_meta_tables_views (G_GNUC_UNUSED GdaServerProvider *prov, GdaConne
 
 	/* check correct postgres server version */
 	GdaPostgresReuseable *rdata;
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if (rdata->version_float < 8.2) {
@@ -1053,7 +1053,7 @@ gboolean _gda_postgres_meta__columns (G_GNUC_UNUSED GdaServerProvider *prov, Gda
 	gint i, nrows;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -1149,7 +1149,7 @@ _gda_postgres_meta_columns (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection
 	GdaPostgresReuseable *rdata;
 
 	/* check correct postgres server version */
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if (rdata->version_float < 8.2) {
@@ -1255,7 +1255,7 @@ _gda_postgres_meta__view_cols (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnect
 
 	/* check correct postgres server version */
 	GdaPostgresReuseable *rdata;
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if (rdata->version_float < 8.2) {
@@ -1289,7 +1289,7 @@ _gda_postgres_meta_view_cols (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnecti
 	gboolean retval = TRUE;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -1324,7 +1324,7 @@ _gda_postgres_meta__constraints_tab (G_GNUC_UNUSED GdaServerProvider *prov, GdaC
 	gboolean retval;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -1354,7 +1354,7 @@ _gda_postgres_meta_constraints_tab (G_GNUC_UNUSED GdaServerProvider *prov, GdaCo
 	gboolean retval = TRUE;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -1415,7 +1415,7 @@ _gda_postgres_meta__constraints_ref (G_GNUC_UNUSED GdaServerProvider *prov, GdaC
 	gboolean retval;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -1445,7 +1445,7 @@ _gda_postgres_meta_constraints_ref (G_GNUC_UNUSED GdaServerProvider *prov, GdaCo
 	gboolean retval = TRUE;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -1489,7 +1489,7 @@ _gda_postgres_meta__key_columns (G_GNUC_UNUSED GdaServerProvider *prov, GdaConne
 	gboolean retval;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -1519,7 +1519,7 @@ _gda_postgres_meta_key_columns (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnec
 	gboolean retval = TRUE;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -1563,7 +1563,7 @@ _gda_postgres_meta__check_columns (G_GNUC_UNUSED GdaServerProvider *prov, GdaCon
 	gboolean retval;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -1593,7 +1593,7 @@ _gda_postgres_meta_check_columns (G_GNUC_UNUSED GdaServerProvider *prov, GdaConn
 	gboolean retval = TRUE;
 	GdaPostgresReuseable *rdata;
 
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 
@@ -1638,7 +1638,7 @@ _gda_postgres_meta__triggers (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnecti
 
 	/* check correct postgres server version */
 	GdaPostgresReuseable *rdata;
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if (rdata->version_float < 8.2) {
@@ -1673,7 +1673,7 @@ _gda_postgres_meta_triggers (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnectio
 
 	/* check correct postgres server version */
 	GdaPostgresReuseable *rdata;
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if (rdata->version_float < 8.2) {
@@ -1713,7 +1713,7 @@ _gda_postgres_meta__routines (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnecti
 
 	/* check correct postgres server version */
 	GdaPostgresReuseable *rdata;
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if (rdata->version_float < 8.2) {
@@ -1748,7 +1748,7 @@ _gda_postgres_meta_routines (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnectio
 
 	/* check correct postgres server version */
 	GdaPostgresReuseable *rdata;
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if (rdata->version_float < 8.2) {
@@ -1797,7 +1797,7 @@ _gda_postgres_meta__routine_col (G_GNUC_UNUSED GdaServerProvider *prov, GdaConne
 
 	/* check correct postgres server version */
 	GdaPostgresReuseable *rdata;
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if (rdata->version_float < 8.2) {
@@ -1862,7 +1862,7 @@ _gda_postgres_meta_routine_col (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnec
 
 	/* check correct postgres server version */
 	GdaPostgresReuseable *rdata;
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if (rdata->version_float < 8.2) {
@@ -1931,7 +1931,7 @@ _gda_postgres_meta__routine_par (G_GNUC_UNUSED GdaServerProvider *prov, GdaConne
 
 	/* check correct postgres server version */
 	GdaPostgresReuseable *rdata;
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if (rdata->version_float < 8.2) {
@@ -1966,7 +1966,7 @@ _gda_postgres_meta_routine_par (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnec
 
 	/* check correct postgres server version */
 	GdaPostgresReuseable *rdata;
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if (rdata->version_float < 8.2) {
@@ -2007,7 +2007,7 @@ _gda_postgres_meta__indexes_tab (G_GNUC_UNUSED GdaServerProvider *prov, GdaConne
 
 	/* check correct postgres server version */
 	GdaPostgresReuseable *rdata;
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if (rdata->version_float < 8.2) {
@@ -2051,7 +2051,7 @@ _gda_postgres_meta_indexes_tab (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnec
 
 	/* check correct postgres server version */
 	GdaPostgresReuseable *rdata;
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if (rdata->version_float < 8.2) {
@@ -2193,7 +2193,7 @@ _gda_postgres_meta__index_cols (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnec
 
 	/* check correct postgres server version */
 	GdaPostgresReuseable *rdata;
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if (rdata->version_float < 8.2) {
@@ -2234,7 +2234,7 @@ _gda_postgres_meta_index_cols (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnect
 
 	/* check correct postgres server version */
 	GdaPostgresReuseable *rdata;
-	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data (cnc));
+	rdata = GDA_POSTGRES_GET_REUSEABLE_DATA (gda_connection_internal_get_provider_data_error (cnc, error));
 	if (!rdata)
 		return FALSE;
 	if (rdata->version_float < 8.2) {
diff --git a/providers/skel-implementation/capi/gda-capi-provider.c b/providers/skel-implementation/capi/gda-capi-provider.c
index d1d8323..4582943 100644
--- a/providers/skel-implementation/capi/gda-capi-provider.c
+++ b/providers/skel-implementation/capi/gda-capi-provider.c
@@ -643,7 +643,7 @@ gda_capi_provider_begin_transaction (GdaServerProvider *provider, GdaConnection
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -664,7 +664,7 @@ gda_capi_provider_commit_transaction (GdaServerProvider *provider, GdaConnection
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -685,7 +685,7 @@ gda_capi_provider_rollback_transaction (GdaServerProvider *provider, GdaConnecti
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -706,7 +706,7 @@ gda_capi_provider_add_savepoint (GdaServerProvider *provider, GdaConnection *cnc
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -727,7 +727,7 @@ gda_capi_provider_rollback_savepoint (GdaServerProvider *provider, GdaConnection
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -748,7 +748,7 @@ gda_capi_provider_delete_savepoint (GdaServerProvider *provider, GdaConnection *
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1044,7 +1044,7 @@ gda_capi_provider_statement_execute (GdaServerProvider *provider, GdaConnection
                 *last_inserted_row = NULL;
 
 	/* Get private data */
-	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1335,7 +1335,7 @@ gda_capi_provider_xa_start (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1357,7 +1357,7 @@ gda_capi_provider_xa_end (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1378,7 +1378,7 @@ gda_capi_provider_xa_prepare (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1400,7 +1400,7 @@ gda_capi_provider_xa_commit (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1421,7 +1421,7 @@ gda_capi_provider_xa_rollback (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 	g_return_val_if_fail (xid, FALSE);
 
-	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1443,7 +1443,7 @@ gda_capi_provider_xa_recover (GdaServerProvider *provider, GdaConnection *cnc,
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), NULL);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, NULL);
 
-	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (CapiConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return NULL;
 
diff --git a/providers/web/gda-web-meta.c b/providers/web/gda-web-meta.c
index 219b83c..a238a3a 100644
--- a/providers/web/gda-web-meta.c
+++ b/providers/web/gda-web-meta.c
@@ -120,7 +120,7 @@ _gda_web_meta__info (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *cnc,
 	gboolean retval;
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -151,7 +151,7 @@ _gda_web_meta__btypes (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *cnc
 	gboolean retval;
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -180,7 +180,7 @@ _gda_web_meta__udt (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *cnc,
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -204,7 +204,7 @@ _gda_web_meta_udt (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *cnc,
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -229,7 +229,7 @@ _gda_web_meta__udt_cols (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *c
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -253,7 +253,7 @@ _gda_web_meta_udt_cols (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *cn
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -278,7 +278,7 @@ _gda_web_meta__enums (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *cnc,
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -302,7 +302,7 @@ _gda_web_meta_enums (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *cnc,
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -328,7 +328,7 @@ _gda_web_meta__domains (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *cn
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -352,7 +352,7 @@ _gda_web_meta_domains (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *cnc
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -376,7 +376,7 @@ _gda_web_meta__constraints_dom (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnec
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -401,7 +401,7 @@ _gda_web_meta_constraints_dom (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnect
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -426,7 +426,7 @@ _gda_web_meta__el_types (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *c
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -450,7 +450,7 @@ _gda_web_meta_el_types (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *cn
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -474,7 +474,7 @@ _gda_web_meta__collations (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -499,7 +499,7 @@ _gda_web_meta_collations (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -525,7 +525,7 @@ _gda_web_meta__character_sets (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnect
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -550,7 +550,7 @@ _gda_web_meta_character_sets (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnecti
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -577,7 +577,7 @@ _gda_web_meta__schemata (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *c
 	gboolean retval;
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -609,7 +609,7 @@ _gda_web_meta_schemata (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *cn
 	gboolean retval;
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -646,7 +646,7 @@ _gda_web_meta__tables_views (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnectio
 	gboolean retval = TRUE;
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -695,7 +695,7 @@ _gda_web_meta_tables_views (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection
 	gboolean retval = TRUE;
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -761,7 +761,7 @@ _gda_web_meta__columns (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *cn
 	gboolean retval;
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -794,7 +794,7 @@ _gda_web_meta_columns (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *cnc
 	gboolean retval;
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -827,7 +827,7 @@ _gda_web_meta__view_cols (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -852,7 +852,7 @@ _gda_web_meta_view_cols (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *c
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -879,7 +879,7 @@ _gda_web_meta__constraints_tab (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnec
 	gboolean retval;
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -912,7 +912,7 @@ _gda_web_meta_constraints_tab (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnect
 	gboolean retval;
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -955,7 +955,7 @@ _gda_web_meta__constraints_ref (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnec
 	gboolean retval;
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -988,7 +988,7 @@ _gda_web_meta_constraints_ref (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnect
 	gboolean retval;
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -1026,7 +1026,7 @@ _gda_web_meta__key_columns (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection
 	gboolean retval;
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -1059,7 +1059,7 @@ _gda_web_meta_key_columns (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection
 	gboolean retval;
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -1097,7 +1097,7 @@ _gda_web_meta__check_columns (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnecti
 	gboolean retval;
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -1130,7 +1130,7 @@ _gda_web_meta_check_columns (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnectio
 	gboolean retval;
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -1168,7 +1168,7 @@ _gda_web_meta__triggers (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *c
 	gboolean retval;
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -1201,7 +1201,7 @@ _gda_web_meta_triggers (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *cn
 	gboolean retval;
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 	
@@ -1235,7 +1235,7 @@ _gda_web_meta__routines (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *c
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1260,7 +1260,7 @@ _gda_web_meta_routines (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *cn
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1285,7 +1285,7 @@ _gda_web_meta__routine_col (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1310,7 +1310,7 @@ _gda_web_meta_routine_col (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1335,7 +1335,7 @@ _gda_web_meta__routine_par (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1360,7 +1360,7 @@ _gda_web_meta_routine_par (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1385,7 +1385,7 @@ _gda_web_meta__indexes_tab (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1410,7 +1410,7 @@ _gda_web_meta_indexes_tab (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1435,7 +1435,7 @@ _gda_web_meta__index_cols (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1460,7 +1460,7 @@ _gda_web_meta_index_cols (G_GNUC_UNUSED GdaServerProvider *prov, GdaConnection *
 {
 	WebConnectionData *cdata;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
diff --git a/providers/web/gda-web-provider.c b/providers/web/gda-web-provider.c
index 4571991..299e277 100644
--- a/providers/web/gda-web-provider.c
+++ b/providers/web/gda-web-provider.c
@@ -622,7 +622,7 @@ gda_web_provider_create_operation (GdaServerProvider *provider, GdaConnection *c
 		g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 		g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-		cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+		cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	}
 	if (!cdata) {
 		g_set_error (error, GDA_SERVER_PROVIDER_ERROR,
@@ -651,7 +651,7 @@ gda_web_provider_render_operation (GdaServerProvider *provider, GdaConnection *c
 		g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 		g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-		cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+		cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	}
 	if (!cdata) {
 		g_set_error (error, GDA_SERVER_PROVIDER_ERROR,
@@ -722,7 +722,7 @@ gda_web_provider_begin_transaction (GdaServerProvider *provider, GdaConnection *
 			     "%s", _("Transaction level is not supported"));
 		return FALSE;
 	}
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -782,7 +782,7 @@ gda_web_provider_commit_transaction (GdaServerProvider *provider, GdaConnection
 			     "%s", _("Named transaction is not supported"));
 		return FALSE;
 	}
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -842,7 +842,7 @@ gda_web_provider_rollback_transaction (GdaServerProvider *provider, GdaConnectio
 			     "%s", _("Named transaction is not supported"));
 		return FALSE;
 	}
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -902,7 +902,7 @@ gda_web_provider_add_savepoint (GdaServerProvider *provider, GdaConnection *cnc,
 			     "%s", _("Unnamed savepoint is not supported"));
 		return FALSE;
 	}
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -963,7 +963,7 @@ gda_web_provider_rollback_savepoint (GdaServerProvider *provider, GdaConnection
 			     "%s", _("Unnamed savepoint is not supported"));
 		return FALSE;
 	}
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1019,7 +1019,7 @@ gda_web_provider_delete_savepoint (GdaServerProvider *provider, GdaConnection *c
 	g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 	g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1149,7 +1149,7 @@ gda_web_provider_statement_to_sql (GdaServerProvider *provider, GdaConnection *c
 		g_return_val_if_fail (GDA_IS_CONNECTION (cnc), FALSE);
 		g_return_val_if_fail (gda_connection_get_provider (cnc) == provider, FALSE);
 
-		cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+		cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	}
 	if (!cdata)
 		return gda_statement_to_sql_extended (stmt, cnc, params, flags, params_used, error);
@@ -1238,7 +1238,7 @@ gda_web_provider_statement_prepare (GdaServerProvider *provider, GdaConnection *
 	if (ps)
 		return TRUE;
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return FALSE;
 
@@ -1410,7 +1410,7 @@ gda_web_provider_statement_execute (GdaServerProvider *provider, GdaConnection *
                 *last_inserted_row = NULL;
 
 	/* Get private data */
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata) 
 		return NULL;
 
diff --git a/providers/web/gda-web-recordset.c b/providers/web/gda-web-recordset.c
index 357a563..822b99c 100644
--- a/providers/web/gda-web-recordset.c
+++ b/providers/web/gda-web-recordset.c
@@ -149,7 +149,7 @@ gda_web_recordset_new (GdaConnection *cnc, GdaWebPStmt *ps, GdaSet *exec_params,
         g_return_val_if_fail (GDA_IS_CONNECTION (cnc), NULL);
         g_return_val_if_fail (ps != NULL, NULL);
 
-	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data (cnc);
+	cdata = (WebConnectionData*) gda_connection_internal_get_provider_data_error (cnc, error);
 	if (!cdata)
 		return FALSE;
 



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