Top |
GObject ╰── GdaConnection ╰── GdaVirtualConnection ╰── GdaVconnectionDataModel ╰── GdaVconnectionHub
The GdaVconnectionHub object "binds" together the tables from other (opened) connections to make it possible to run SQL queries on data from several connections at once.
A GdaVconnectionHub connection can bind several other connections, each separated in its own namespace (which is specified
when adding a connection using gda_vconnection_hub_add()
).
For example if a connection A has two tables 'table_1' and 'table_2', then after gda_vconnection_hub_add()
has been called
with A as connection argument and with a "c1" namespace, then in the corresponding GdaVconnectionHub connection, table
'table_1' must be referred to as 'c1.table_1' and 'table_2' must be referred to as 'c1.table_2'.
void (*GdaVConnectionHubFunc) (GdaConnection *cnc
,const gchar *ns
,gpointer data
);
gboolean gda_vconnection_hub_add (GdaVconnectionHub *hub
,GdaConnection *cnc
,const gchar *ns
,GError **error
);
Make all the tables of cnc
appear as tables (of the same name) in the hub
connection.
If the ns
is not NULL
, then within hub
, the tables will be accessible using the 'ns
.table_name
'
notation.
Within any instance of hub
, there can be only one added connection where ns
is NULL
.
hub |
a GdaVconnectionHub connection |
|
cnc |
||
ns |
a namespace, or |
[allow-none] |
error |
a place to store errors, or |
gboolean gda_vconnection_hub_remove (GdaVconnectionHub *hub
,GdaConnection *cnc
,GError **error
);
Remove all the tables in hub
representing cnc
's tables.
GdaConnection * gda_vconnection_hub_get_connection (GdaVconnectionHub *hub
,const gchar *ns
);
Find the GdaConnection object in hub
associated to the ns
name space
void gda_vconnection_hub_foreach (GdaVconnectionHub *hub
,GdaVConnectionHubFunc func
,gpointer data
);
Call func
for each GdaConnection represented in hub
.
hub |
a GdaVconnectionHub connection |
|
func |
a GdaVconnectionDataModelFunc function pointer |
|
data |
data to pass to |