![]() |
![]() |
![]() |
GNOME Data Access 5 manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy | Implemented Interfaces |
struct GdaVconnectionHub; void (*GdaVConnectionHubFunc) (GdaConnection *cnc
,const gchar *ns
,gpointer data
); gboolean gda_vconnection_hub_add (GdaVconnectionHub *hub
,GdaConnection *cnc
,const gchar *ns
,GError **error
); gboolean gda_vconnection_hub_remove (GdaVconnectionHub *hub
,GdaConnection *cnc
,GError **error
); GdaConnection * gda_vconnection_hub_get_connection (GdaVconnectionHub *hub
,const gchar *ns
); void gda_vconnection_hub_foreach (GdaVconnectionHub *hub
,GdaVConnectionHubFunc func
,gpointer data
);
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
.
|
a GdaVconnectionHub connection |
|
a GdaConnection |
|
a namespace, or NULL
|
|
a place to store errors, or NULL
|
Returns : |
TRUE if no error occurred |
gboolean gda_vconnection_hub_remove (GdaVconnectionHub *hub
,GdaConnection *cnc
,GError **error
);
Remove all the tables in hub
representing cnc
's tables.
|
a GdaVconnectionHub connection |
|
a GdaConnection |
|
a place to store errors, or NULL
|
Returns : |
TRUE if no error occurred |
GdaConnection * gda_vconnection_hub_get_connection (GdaVconnectionHub *hub
,const gchar *ns
);
Find the GdaConnection object in hub
associated to the ns
name space
|
a GdaVconnectionHub connection |
|
a name space, or NULL
|
Returns : |
the GdaConnection, or NULL if no connection is associated to ns
|
void gda_vconnection_hub_foreach (GdaVconnectionHub *hub
,GdaVConnectionHubFunc func
,gpointer data
);
Call func
for each GdaConnection represented in hub
.
|
a GdaVconnectionHub connection |
|
a GdaVconnectionDataModelFunc function pointer |
|
data to pass to func calls |