GdaConnection

GdaConnection — A connection to a database

Stability Level

Stable, unless otherwise indicated

Functions

GQuark gda_connection_error_quark ()
GdaConnection * gda_connection_open_from_dsn ()
GdaConnection * gda_connection_open_from_string ()
GdaConnection * gda_connection_new_from_dsn ()
GdaConnection * gda_connection_new_from_string ()
gboolean gda_connection_open ()
void (*GdaConnectionOpenFunc) ()
guint gda_connection_open_async ()
gboolean gda_connection_close ()
gboolean gda_connection_is_opened ()
GdaConnectionStatus gda_connection_get_status ()
GdaConnectionOptions gda_connection_get_options ()
void gda_connection_set_main_context ()
GMainContext * gda_connection_get_main_context ()
GdaServerProvider * gda_connection_get_provider ()
const gchar * gda_connection_get_provider_name ()
GdaServerOperation * gda_connection_create_operation ()
gboolean gda_connection_perform_operation ()
const gchar * gda_connection_get_dsn ()
const gchar * gda_connection_get_cnc_string ()
const gchar * gda_connection_get_authentication ()
gboolean gda_connection_get_date_format ()
GdaStatement * gda_connection_parse_sql_string ()
GdaDataModel * gda_connection_execute_select_command ()
gint gda_connection_execute_non_select_command ()
gboolean gda_connection_insert_row_into_table ()
gboolean gda_connection_insert_row_into_table_v ()
gboolean gda_connection_update_row_in_table ()
gboolean gda_connection_update_row_in_table_v ()
gboolean gda_connection_delete_row_from_table ()
const GList * gda_connection_get_events ()
GdaSqlParser * gda_connection_create_parser ()
GSList * gda_connection_batch_execute ()
gchar * gda_connection_quote_sql_identifier ()
gchar * gda_connection_statement_to_sql ()
gboolean gda_connection_statement_prepare ()
GObject * gda_connection_statement_execute ()
GdaDataModel * gda_connection_statement_execute_select ()
GdaDataModel * gda_connection_statement_execute_select_fullv ()
GdaDataModel * gda_connection_statement_execute_select_full ()
gint gda_connection_statement_execute_non_select ()
GSList * gda_connection_repetitive_statement_execute ()
gboolean gda_connection_begin_transaction ()
gboolean gda_connection_commit_transaction ()
gboolean gda_connection_rollback_transaction ()
gboolean gda_connection_add_savepoint ()
gboolean gda_connection_rollback_savepoint ()
gboolean gda_connection_delete_savepoint ()
GdaTransactionStatus * gda_connection_get_transaction_status ()
gchar * gda_connection_value_to_sql_string ()
gboolean gda_connection_supports_feature ()
GdaMetaStore * gda_connection_get_meta_store ()
gboolean gda_connection_update_meta_store ()
GdaDataModel * gda_connection_get_meta_store_data ()
GdaDataModel * gda_connection_get_meta_store_data_v ()

Properties

gchar * auth-string Read / Write
gchar * cnc-string Read / Write
gchar * dsn Read / Write
gint events-history-size Read / Write
guint execution-slowdown Read / Write
gboolean execution-timer Read / Write
GdaMetaStore * meta-store Read / Write
GdaConnectionOptions options Read / Write
GdaServerProvider * provider Read / Write

Object Hierarchy

    GEnum
    ╰── GdaConnectionStatus
    GObject
    ╰── GdaConnection
        ╰── GdaVirtualConnection

Implemented Interfaces

GdaConnection implements

Description

Each connection to a database is represented by a GdaConnection object. A connection is created using gda_connection_new_from_dsn() if a data source has been defined, or gda_connection_new_from_string() otherwise. It is not recommended to create a GdaConnection object using g_object_new() as the results are unpredictable (some parts won't correctly be initialized).

Once the connection has been created, it can be opened using gda_connection_open() or gda_connection_open_async(). By default these functions will block, unless you speficy a GMainContext from which events will be processed while opening the connection using gda_connection_set_main_context().

The same gda_connection_set_main_context() allows the program to still handle events while a potentially blocking operation (such as executing a statement) is being carried out (this is a change compared to the GdaConnection object in Libgda versions before 6.x, where asynchronous execution was featured using a set of specific functions like gda_connection_async_statement_execute()).

The GdaConnection object implements its own locking mechanism so it is thread-safe. If a GMainContext has been specified using gda_connection_set_main_context(), then the events will continue to be processed while the lock on the connection is being acquired.

Functions

gda_connection_error_quark ()

GQuark
gda_connection_error_quark (void);

gda_connection_open_from_dsn ()

GdaConnection *
gda_connection_open_from_dsn (const gchar *dsn,
                              const gchar *auth_string,
                              GdaConnectionOptions options,
                              GError **error);

This function creates a connection and opens it, using a DSN. If opening fails, then no connection is created. See gda_connection_new_from_dsn() for more information.

Parameters

dsn

data source name.

 

auth_string

authentication string, or NULL.

[nullable]

options

options for the connection (see GdaConnectionOptions).

 

error

a place to store an error, or NULL

 

Returns

a new GdaConnection if connection opening was successful or NULL if there was an error.

[transfer full]


gda_connection_open_from_string ()

GdaConnection *
gda_connection_open_from_string (const gchar *provider_name,
                                 const gchar *cnc_string,
                                 const gchar *auth_string,
                                 GdaConnectionOptions options,
                                 GError **error);

This function creates a connection and opens it, using a connection string. If opening fails, then no connection is created. See gda_connection_new_from_string() for more information.

Parameters

provider_name

provider ID to connect to, or NULL.

[nullable]

cnc_string

connection string.

 

auth_string

authentication string, or NULL.

[nullable]

options

options for the connection (see GdaConnectionOptions).

 

error

a place to store an error, or NULL

 

Returns

a new GdaConnection if connection opening was successful or NULL if there was an error.

[transfer full]


gda_connection_new_from_dsn ()

GdaConnection *
gda_connection_new_from_dsn (const gchar *dsn,
                             const gchar *auth_string,
                             GdaConnectionOptions options,
                             GError **error);

This function creates a new function, using a pre-defined data source (DSN), see gda_config_define_dsn() for more information about how to define a DSN. If you don't want to define a DSN, it is possible to use gda_connection_new_from_string() instead of this method.

The dsn string must have the following format: "[<username>[:<password>]@]<DSN>" (if <username> and/or <password> are provided, and auth_string is NULL, then these username and passwords will be used). Note that if provided, <username> and <password> must be encoded as per RFC 1738, see gda_rfc1738_encode() for more information.

The auth_string can contain the authentication information for the server to accept the connection. It is a string containing semi-colon seperated named value, usually like "USERNAME=...;PASSWORD=..." where the ... are replaced by actual values. Note that each name and value must be encoded as per RFC 1738, see gda_rfc1738_encode() for more information.

The actual named parameters required depend on the provider being used, and that list is available as the auth_params member of the GdaProviderInfo structure for each installed provider (use gda_config_get_provider_info() to get it). Also one can use the "gda-sql-6.0 -L" command to list the possible named parameters.

This method may fail with a GDA_CONNECTION_ERROR domain error (see the GdaConnectionError error codes) or a GDA_CONFIG_ERROR domain error (see the GdaConfigError error codes).

The returned connection is not yet opened, you need to call gda_connection_open() or gda_connection_open_async().

Parameters

dsn

data source name.

 

auth_string

authentication string, or NULL.

[nullable]

options

options for the connection (see GdaConnectionOptions).

 

error

a place to store an error, or NULL

 

Returns

a new GdaConnection or NULL if there was an error.

[transfer full]

Since: 5.0.2


gda_connection_new_from_string ()

GdaConnection *
gda_connection_new_from_string (const gchar *provider_name,
                                const gchar *cnc_string,
                                const gchar *auth_string,
                                GdaConnectionOptions options,
                                GError **error);

Opens a connection given a provider ID and a connection string. This allows applications to open connections without having to create a data source (DSN) in the configuration. The format of cnc_string is similar to PostgreSQL and MySQL connection strings. It is a semicolumn-separated series of <key>=<value> pairs, where each key and value are encoded as per RFC 1738, see gda_rfc1738_encode() for more information.

The possible keys depend on the provider, the "gda-sql-6.0 -L" command can be used to list the actual keys for each installed database provider.

For example the connection string to open an SQLite connection to a database file named "my_data.db" in the current directory would be "DB_DIR=.;DB_NAME=my_data".

The cnc_string string must have the following format: "&lt;provider&gt;://@]<connection_params>" (if <username> and/or <password> are provided, and auth_string is NULL, then these username and passwords will be used, and if <provider> is provided and provider_name is NULL then this provider will be used). Note that if provided, <username>, <password> and <provider> must be encoded as per RFC 1738, see gda_rfc1738_encode() for more information.

The auth_string must contain the authentication information for the server to accept the connection. It is a string containing semi-colon seperated named values, usually like "USERNAME=...;PASSWORD=..." where the ... are replaced by actual values. Note that each name and value must be encoded as per RFC 1738, see gda_rfc1738_encode() for more information.

The actual named parameters required depend on the provider being used, and that list is available as the auth_params member of the GdaProviderInfo structure for each installed provider (use gda_config_get_provider_info() to get it). Similarly to the format of the connection string, use the "gda-sql-6.0 -L" command to list the possible named parameters.

Additionally, it is possible to have the connection string respect the "<provider_name>://<real cnc string>" format, in which case the provider name and the real connection string will be extracted from that string (note that if provider_name is not NULL then it will still be used as the provider ID).

This method may fail with a GDA_CONNECTION_ERROR domain error (see the GdaConnectionError error codes) or a GDA_CONFIG_ERROR domain error (see the GdaConfigError error codes).

The returned connection is not yet opened, you need to call gda_connection_open() or gda_connection_open_async().

Parameters

provider_name

provider ID to connect to, or NULL.

[nullable]

cnc_string

connection string.

 

auth_string

authentication string, or NULL.

[nullable]

options

options for the connection (see GdaConnectionOptions).

 

error

a place to store an error, or NULL

 

Returns

a new GdaConnection or NULL if there was an error.

[transfer full]

Since: 5.0.2


gda_connection_open ()

gboolean
gda_connection_open (GdaConnection *cnc,
                     GError **error);

Tries to open the connection. The function either blocks or, if a GMaincontext has been specified using gda_connection_set_main_context(), processes the events for that main context until either the connection opening has succeeded or failed.

If the connection is already opened, then this function returns TRUE immediately.

Parameters

cnc

a GdaConnection object

 

error

a place to store errors, or NULL

 

Returns

TRUE if the connection is opened, and FALSE otherwise.


GdaConnectionOpenFunc ()

void
(*GdaConnectionOpenFunc) (GdaConnection *cnc,
                          guint job_id,
                          gboolean result,
                          GError *error,
                          gpointer data);

gda_connection_open_async ()

guint
gda_connection_open_async (GdaConnection *cnc,
                           GdaConnectionOpenFunc callback,
                           gpointer data,
                           GError **error);

This function requests that the connection be opened.

If the connection is already opened, then this function returns an error (with the GDA_CONNECTION_ALREADY_OPENED_ERROR code).

Note: callback function will be called when processing events from the GMainContext defined by gda_connection_set_main_context(), for example when there is a main loop for that main context.

Parameters

cnc

a GdaConnection object

 

callback

a GdaConnectionOpenFunc which will be called after the connection has been opened (of failed to open).

[scope notified]

data

data to pass to callback when called.

[nullable]

error

a place to store errors, or NULL

 

Returns

a job ID

Since: 6.0


gda_connection_close ()

gboolean
gda_connection_close (GdaConnection *cnc,
                      GError **error);

Closes the connection to the underlying data source.

Parameters

cnc

a GdaConnection object.

 

gda_connection_is_opened ()

gboolean
gda_connection_is_opened (GdaConnection *cnc);

Checks whether a connection is open or not.

Parameters

cnc

a GdaConnection object.

 

Returns

TRUE if the connection is open, FALSE if it's not.


gda_connection_get_status ()

GdaConnectionStatus
gda_connection_get_status (GdaConnection *cnc);

Get the current status of cnc . Note that this function needs to lock the connection (see GdaLockable) to obtain the result.

Parameters

cnc

a GdaConnection

 

Returns

the connection's status

Since: 6.0


gda_connection_get_options ()

GdaConnectionOptions
gda_connection_get_options (GdaConnection *cnc);

Gets the GdaConnectionOptions used to open this connection.

Parameters

cnc

a GdaConnection object.

 

Returns

the connection options.


gda_connection_set_main_context ()

void
gda_connection_set_main_context (GdaConnection *cnc,
                                 GThread *thread,
                                 GMainContext *context);

Defines the GMainContext which will still process events while a potentially blocking operation is performed using cnc . If cnc is NULL, then this function applies to all the connections, except the ones for which a different context has been defined (be it user defined connections or internal connections used in other objects). On the other hand, if cnc is not NULL, then the setting only applied to cnc .

For exemple if there is a GUI which needs to continue to handle events, then you can use this function to pass the default GMainContext used for the UI refreshing, for example:

GMainContext *context;
cnc = gda_connection_new_...;
context = g_main_context_ref_thread_default ();
gda_connection_set_main_context (cnc, NULL, context);
g_main_context_unref (context);
GError *error = NULL;
if (! gda_connection_open (cnc, &error))
    ...

If context is NULL, then potentially blocking operation will actually block any event from being processed while the blocking operation is being performed.

Parameters

cnc

a GdaConnection, or NULL.

[nullable]

thread

the GThread in which context will be used, or NULL (for the current thread).

[nullable]

context

a GMainContext, or NULL.

[nullable]

Since: 6.0


gda_connection_get_main_context ()

GMainContext *
gda_connection_get_main_context (GdaConnection *cnc,
                                 GThread *thread);

Get the GMainContext used while a potentially blocking operation is performed using nc , see gda_connection_set_main_context(). If cnc is NULL, then the setting applies to all the connections for which no other similar setting has been set.

If no main context has been defined, then some function calls (for example connection opening) may block until the operation has finished.

Parameters

cnc

a GdaConnection, or NULL.

[nullable]

thread

the GThread in which context will be used, or NULL (for the current thread).

[nullable]

Returns

a GMainContext, or NULL.

[transfer none]

Since: 6.0


gda_connection_get_provider ()

GdaServerProvider *
gda_connection_get_provider (GdaConnection *cnc);

Gets a pointer to the GdaServerProvider object used to access the database

Parameters

cnc

a GdaConnection object

 

Returns

the GdaServerProvider (NEVER NULL).

[transfer none]


gda_connection_get_provider_name ()

const gchar *
gda_connection_get_provider_name (GdaConnection *cnc);

Gets the name (identifier) of the database provider used by cnc

Parameters

cnc

a GdaConnection object

 

Returns

a non modifiable string


gda_connection_create_operation ()

GdaServerOperation *
gda_connection_create_operation (GdaConnection *cnc,
                                 GdaServerOperationType type,
                                 GdaSet *options,
                                 GError **error);

Creates a new GdaServerOperation object which can be modified in order to perform the type type of action. It is a wrapper around the gda_server_provider_create_operation() method.

Parameters

cnc

a GdaConnection object

 

type

the type of operation requested

 

options

an optional list of parameters.

[nullable]

error

a place to store an error, or NULL

 

Returns

a new GdaServerOperation object, or NULL in the connection's provider does not support the type type of operation or if an error occurred.

[transfer full]


gda_connection_perform_operation ()

gboolean
gda_connection_perform_operation (GdaConnection *cnc,
                                  GdaServerOperation *op,
                                  GError **error);

Performs the operation described by op (which should have been created using gda_connection_create_operation()). It is a wrapper around the gda_server_provider_perform_operation() method.

Parameters

cnc

a GdaConnection object

 

op

a GdaServerOperation object

 

error

a place to store an error, or NULL

 

Returns

TRUE if no error occurred


gda_connection_get_dsn ()

const gchar *
gda_connection_get_dsn (GdaConnection *cnc);

Parameters

cnc

a GdaConnection object

 

Returns

the data source name the connection object is connected to.


gda_connection_get_cnc_string ()

const gchar *
gda_connection_get_cnc_string (GdaConnection *cnc);

Gets the connection string used to open this connection.

The connection string is the string sent over to the underlying database provider, which describes the parameters to be used to open a connection on the underlying data source.

Parameters

cnc

a GdaConnection object.

 

Returns

the connection string used when opening the connection.


gda_connection_get_authentication ()

const gchar *
gda_connection_get_authentication (GdaConnection *cnc);

Gets the user name used to open this connection.

Parameters

cnc

a GdaConnection object.

 

Returns

the user name.


gda_connection_get_date_format ()

gboolean
gda_connection_get_date_format (GdaConnection *cnc,
                                GDateDMY *out_first,
                                GDateDMY *out_second,
                                GDateDMY *out_third,
                                gchar *out_sep,
                                GError **error);

This function allows you to determine the actual format for the date values.

Parameters

cnc

a GdaConnection object

 

out_first

the place to store the first part of the date, or NULL.

[out][nullable]

out_second

the place to store the second part of the date, or NULL.

[out][nullable]

out_third

the place to store the third part of the date, or NULL.

[out][nullable]

out_sep

the place to store the separator (used between year, month and day parts) part of the date, or NULL.

[out][nullable]

error

a place to store errors, or NULL.

[nullable]

Returns

TRUE if no error occurred

Since: 5.2


gda_connection_parse_sql_string ()

GdaStatement *
gda_connection_parse_sql_string (GdaConnection *cnc,
                                 const gchar *sql,
                                 GdaSet **params,
                                 GError **error);

This function helps to parse a SQL string which uses parameters and store them at params .

Parameters

cnc

a GdaConnection object, or NULL.

[nullable]

sql

an SQL command to parse, not NULL

 

params

a place to store a new GdaSet, for parameters used in SQL command, or NULL.

[out][nullable][transfer full]

error

a place to store errors, or NULL

 

Returns

a GdaStatement representing the SQL command, or NULL if an error occurred.

[transfer full]

Since: 4.2.3


gda_connection_execute_select_command ()

GdaDataModel *
gda_connection_execute_select_command (GdaConnection *cnc,
                                       const gchar *sql,
                                       GError **error);

Execute a SQL SELECT command over an opened connection.

Parameters

cnc

an opened connection

 

sql

a query statement that must begin with "SELECT"

 

error

a place to store errors, or NULL

 

Returns

a new GdaDataModel if successful, NULL otherwise.

[transfer full]

Since: 4.2.3


gda_connection_execute_non_select_command ()

gint
gda_connection_execute_non_select_command
                               (GdaConnection *cnc,
                                const gchar *sql,
                                GError **error);

This is a convenience function to execute a SQL command over the opened connection. For the returned value, see gda_connection_statement_execute_non_select()'s documentation.

Parameters

cnc

an opened connection

 

sql

a query statement that must not begin with "SELECT"

 

error

a place to store errors, or NULL

 

Returns

the number of rows affected or -1, or -2

Since: 4.2.3


gda_connection_insert_row_into_table ()

gboolean
gda_connection_insert_row_into_table (GdaConnection *cnc,
                                      const gchar *table,
                                      GError **error,
                                      ...);

This is a convenience function, which creates an INSERT statement and executes it using the values provided. It internally relies on variables which makes it immune to SQL injection problems.

The equivalent SQL command is: INSERT INTO <table> (<column_name> [,...]) VALUES (<column_name> = <new_value> [,...]).

Parameters

cnc

an opened connection

 

table

table's name to insert into

 

error

a place to store errors, or NULL

 

...

a list of string/GValue pairs with the name of the column to use and the GValue pointer containing the value to insert for the column (value can be NULL), finished by a NULL. There must be at least one column name and value

 

Returns

TRUE if no error occurred

Since: 4.2.3


gda_connection_insert_row_into_table_v ()

gboolean
gda_connection_insert_row_into_table_v
                               (GdaConnection *cnc,
                                const gchar *table,
                                GSList *col_names,
                                GSList *values,
                                GError **error);

col_names and values must have length (>= 1).

This is a convenience function, which creates an INSERT statement and executes it using the values provided. It internally relies on variables which makes it immune to SQL injection problems.

The equivalent SQL command is: INSERT INTO <table> (<column_name> [,...]) VALUES (<column_name> = <new_value> [,...]).

Parameters

cnc

an opened connection

 

table

table's name to insert into

 

col_names

a list of column names (as const gchar *).

[element-type utf8]

values

a list of values (as GValue).

[element-type GValue]

error

a place to store errors, or NULL

 

Returns

TRUE if no error occurred, FALSE otherwise

Since: 4.2.3


gda_connection_update_row_in_table ()

gboolean
gda_connection_update_row_in_table (GdaConnection *cnc,
                                    const gchar *table,
                                    const gchar *condition_column_name,
                                    GValue *condition_value,
                                    GError **error,
                                    ...);

This is a convenience function, which creates an UPDATE statement and executes it using the values provided. It internally relies on variables which makes it immune to SQL injection problems.

The equivalent SQL command is: UPDATE <table> SET <column_name> = <new_value> [,...] WHERE <condition_column_name> = <condition_value>.

Parameters

cnc

an opened connection

 

table

the table's name with the row's values to be updated

 

condition_column_name

the name of the column to used in the WHERE condition clause

 

condition_value

the condition_column_type 's GType

 

error

a place to store errors, or NULL

 

...

a list of string/GValue pairs with the name of the column to use and the GValue pointer containing the value to update the column to (value can be NULL), finished by a NULL. There must be at least one column name and value

 

Returns

TRUE if no error occurred, FALSE otherwise

Since: 4.2.3


gda_connection_update_row_in_table_v ()

gboolean
gda_connection_update_row_in_table_v (GdaConnection *cnc,
                                      const gchar *table,
                                      const gchar *condition_column_name,
                                      GValue *condition_value,
                                      GSList *col_names,
                                      GSList *values,
                                      GError **error);

col_names and values must have length (>= 1).

This is a convenience function, which creates an UPDATE statement and executes it using the values provided. It internally relies on variables which makes it immune to SQL injection problems.

The equivalent SQL command is: UPDATE <table> SET <column_name> = <new_value> [,...] WHERE <condition_column_name> = <condition_value>.

Parameters

cnc

an opened connection

 

table

the table's name with the row's values to be updated

 

condition_column_name

the name of the column to used in the WHERE condition clause

 

condition_value

the condition_column_type 's GType

 

col_names

a list of column names (as const gchar *).

[element-type utf8]

values

a list of values (as GValue).

[element-type GValue]

error

a place to store errors, or NULL

 

Returns

TRUE if no error occurred, FALSE otherwise

Since: 4.2.3


gda_connection_delete_row_from_table ()

gboolean
gda_connection_delete_row_from_table (GdaConnection *cnc,
                                      const gchar *table,
                                      const gchar *condition_column_name,
                                      GValue *condition_value,
                                      GError **error);

This is a convenience function, which creates a DELETE statement and executes it using the values provided. It internally relies on variables which makes it immune to SQL injection problems.

The equivalent SQL command is: DELETE FROM <table> WHERE <condition_column_name> = <condition_value>.

Parameters

cnc

an opened connection

 

table

the table's name with the row's values to be updated

 

condition_column_name

the name of the column to used in the WHERE condition clause

 

condition_value

the condition_column_type 's GType

 

error

a place to store errors, or NULL

 

Returns

TRUE if no error occurred, FALSE otherwise

Since: 4.2.3


gda_connection_get_events ()

const GList *
gda_connection_get_events (GdaConnection *cnc);

Retrieves a list of the last errors occurred during the connection. The returned list is chronologically ordered such as that the most recent event is the GdaConnectionEvent of the first node.

Warning: the cnc object may change the list if connection events occur

Parameters

cnc

a GdaConnection.

 

Returns

a GList of GdaConnectionEvent objects (the list should not be modified).

[transfer none][element-type Gda.ConnectionEvent]


gda_connection_create_parser ()

GdaSqlParser *
gda_connection_create_parser (GdaConnection *cnc);

Creates a new parser object able to parse the SQL dialect understood by cnc . If the GdaServerProvider object internally used by cnc does not have its own parser, then NULL is returned, and a general SQL parser can be obtained using gda_sql_parser_new().

Parameters

cnc

a GdaConnection object

 

Returns

a new GdaSqlParser object, or NULL.

[transfer full]


gda_connection_batch_execute ()

GSList *
gda_connection_batch_execute (GdaConnection *cnc,
                              GdaBatch *batch,
                              GdaSet *params,
                              GdaStatementModelUsage model_usage,
                              GError **error);

Executes all the statements contained in batch (in the order in which they were added to batch ), and returns a list of GObject objects, at most one GObject for each statement; see gda_connection_statement_execute() for details about the returned objects.

If one of the statement fails, then none of the subsequent statement will be executed, and the method returns the list of GObject created by the correct execution of the previous statements. If a transaction is required, then it should be started before calling this method.

Parameters

cnc

a GdaConnection object

 

batch

a GdaBatch object which contains all the statements to execute

 

params

a GdaSet object (which can be obtained using gda_batch_get_parameters()), or NULL.

[nullable]

model_usage

specifies how the returned data model(s) will be used, as a GdaStatementModelUsage enum

 

error

a place to store errors, or NULL

 

Returns

a new list of GObject objects.

[transfer full][element-type GObject]


gda_connection_quote_sql_identifier ()

gchar *
gda_connection_quote_sql_identifier (GdaConnection *cnc,
                                     const gchar *id);

Use this method to get a correctly quoted (if necessary) SQL identifier which can be used in SQL statements, from id . If id is already correctly quoted for cnc , then a copy of id may be returned.

This method may add double quotes (or other characters) around id :

  • if id is a reserved SQL keyword (such as SELECT, INSERT, ...)

  • if id contains non allowed characters such as spaces, or if it starts with a digit

  • in any other event as necessary for cnc, depending on the the options passed when opening the cnc connection, and specifically the GDA_CONNECTION_OPTIONS_SQL_IDENTIFIERS_CASE_SENSITIVE option.

One can safely pass an already quoted id to this method, either with quoting characters allowed by cnc or using the double quote (") character.

Parameters

cnc

a GdaConnection object

 

id

an SQL identifier

 

Returns

a new string, to free with g_free() once not needed anymore

Since: 4.0.3


gda_connection_statement_to_sql ()

gchar *
gda_connection_statement_to_sql (GdaConnection *cnc,
                                 GdaStatement *stmt,
                                 GdaSet *params,
                                 GdaStatementSqlFlag flags,
                                 GSList **params_used,
                                 GError **error);

Renders stmt as an SQL statement, adapted to the SQL dialect used by cnc

Parameters

cnc

a GdaConnection object, or NULL.

[nullable]

stmt

a GdaStatement object

 

params

a GdaSet object (which can be obtained using gda_statement_get_parameters()), or NULL.

[nullable]

flags

SQL rendering flags, as GdaStatementSqlFlag OR'ed values

 

params_used

a place to store the list of individual GdaHolder objects within params which have been used.

[nullable][element-type Gda.Holder][out][transfer container]

error

a place to store errors, or NULL

 

Returns

a new string, or NULL if an error occurred.

[transfer full]


gda_connection_statement_prepare ()

gboolean
gda_connection_statement_prepare (GdaConnection *cnc,
                                  GdaStatement *stmt,
                                  GError **error);

Ask the database accessed through the cnc connection to prepare the usage of stmt . This is only useful if stmt will be used more than once (however some database providers may always prepare statements before executing them).

This function is also useful to make sure stmt is fully understood by the database before actually executing it.

Note however that it is also possible that gda_connection_statement_prepare() fails when gda_connection_statement_execute() does not fail (this will usually be the case with statements such as "SELECT * FROM ##tablename::string" because database usually don't allow variables to be used in place of a table name).

Parameters

cnc

a GdaConnection

 

stmt

a GdaStatement object

 

error

a place to store errors, or NULL

 

Returns

TRUE if no error occurred.


gda_connection_statement_execute ()

GObject *
gda_connection_statement_execute (GdaConnection *cnc,
                                  GdaStatement *stmt,
                                  GdaSet *params,
                                  GdaStatementModelUsage model_usage,
                                  GdaSet **last_insert_row,
                                  GError **error);

Executes stmt .

As stmt can, by design (and if not abused), contain only one SQL statement, the return object will either be:

  • a GdaDataSelect object (which is also a GdaDataModel) if stmt is a SELECT statement (usually a GDA_SQL_STATEMENT_SELECT, see GdaSqlStatementType) containing the results of the SELECT. The resulting data model is by default read only, but modifications can be enabled, see the GdaDataSelect's documentation for more information.

  • a GdaSet for any other SQL statement which correctly executed. In this case (if the provider supports it), then the GdaSet may contain value holders named:

If last_insert_row is not NULL and stmt is an INSERT statement, then it will contain a new GdaSet object composed of value holders named "+<column number>" starting at column 0 which contain the actual inserted values. For example if a table is composed of an 'id' column which is auto incremented and a 'name' column then the execution of a "INSERT INTO mytable (name) VALUES ('joe')" query will return a GdaSet with two holders:

  • one with the '+0' ID which may for example contain 1 (note that its "name" property should be "id")

  • one with the '+1' ID which will contain 'joe' (note that its "name" property should be "name")

Note that the value pointer by last_insert_row may be NULL after the function call if either the database provider does not support it, or if the last interted row could not be determined (for example with SQLite if the table in which the data is inserted has the WITHOUT ROWID optimization).

This method may fail with a GDA_SERVER_PROVIDER_ERROR domain error (see the GdaServerProviderError error codes).

Note1: If stmt is a SELECT statement which has some parameters and if params is NULL, then the statement can't be executed and this method will return NULL.

Note2: If stmt is a SELECT statement which has some parameters and if params is not NULL but contains some invalid parameters, then the statement can't be executed and this method will return NULL, unless the model_usage has the GDA_STATEMENT_MODEL_ALLOW_NOPARAM flag.

Note3: If stmt is a SELECT statement which has some parameters and if params is not NULL but contains some invalid parameters and if model_usage has the GDA_STATEMENT_MODEL_ALLOW_NOPARAM flag, then the returned data model will contain no row but will have all the correct columns (even though some of the columns might report as GDA_TYPE_NULL). In this case, if (after this method call) any of params ' parameters change then the resulting data model will re-run itself, see the GdaDataSelect's

auto-reset property for more information.

Note4: if model_usage does not contain the GDA_STATEMENT_MODEL_RANDOM_ACCESS or GDA_STATEMENT_MODEL_CURSOR_FORWARD flags, then the default will be to return a random access data model

Note5: If stmt is a SELECT statement which returns blob values (of type GDA_TYPE_BLOB), then an implicit transaction will have been started by the database provider, and it's up to the caller to close the transaction (which will then be locked) once all the blob ressources have been liberated (when the returned data model is destroyed). See the section about

Binary large objects (BLOBs) for more information.

Also see the provider's limitations, and the

Advanced GdaDataSelect usage sections.

Parameters

cnc

a GdaConnection

 

stmt

a GdaStatement object

 

params

a GdaSet object (which can be obtained using gda_statement_get_parameters()), or NULL.

[nullable]

model_usage

in the case where stmt is a SELECT statement, specifies how the returned data model will be used

 

last_insert_row

a place to store a new GdaSet object which contains the values of the last inserted row, or NULL.

[out][transfer full][nullable]

error

a place to store errors, or NULL

 

Returns

a GObject, or NULL if an error occurred.

[transfer full]


gda_connection_statement_execute_select ()

GdaDataModel *
gda_connection_statement_execute_select
                               (GdaConnection *cnc,
                                GdaStatement *stmt,
                                GdaSet *params,
                                GError **error);

Executes a selection command on the given connection.

This function returns a GdaDataModel resulting from the SELECT statement, or NULL if an error occurred.

This function is just a convenience function around the gda_connection_statement_execute() function.

See the documentation of the gda_connection_statement_execute() for information about the params list of parameters.

Parameters

cnc

a GdaConnection object.

 

stmt

a GdaStatement object.

 

params

a GdaSet object (which can be obtained using gda_statement_get_parameters()), or NULL.

[nullable]

error

a place to store an error, or NULL

 

Returns

a GdaDataModel containing the data returned by the data source, or NULL if an error occurred.

[transfer full]


gda_connection_statement_execute_select_fullv ()

GdaDataModel *
gda_connection_statement_execute_select_fullv
                               (GdaConnection *cnc,
                                GdaStatement *stmt,
                                GdaSet *params,
                                GdaStatementModelUsage model_usage,
                                GError **error,
                                ...);

Executes a selection command on the given connection.

This function returns a GdaDataModel resulting from the SELECT statement, or NULL if an error occurred.

This function is just a convenience function around the gda_connection_statement_execute() function.

See the documentation of the gda_connection_statement_execute() for information about the params list of parameters.

Parameters

cnc

a GdaConnection object.

 

stmt

a GdaStatement object.

 

params

a GdaSet object (which can be obtained using gda_statement_get_parameters()), or NULL.

[nullable]

model_usage

specifies how the returned data model will be used as a GdaStatementModelUsage enum

 

error

a place to store an error, or NULL

 

...

a (-1 terminated) list of (column number, GType) specifying for each column mentioned the GType of the column in the returned GdaDataModel.

 

Returns

a GdaDataModel containing the data returned by the data source, or NULL if an error occurred.

[transfer full]


gda_connection_statement_execute_select_full ()

GdaDataModel *
gda_connection_statement_execute_select_full
                               (GdaConnection *cnc,
                                GdaStatement *stmt,
                                GdaSet *params,
                                GdaStatementModelUsage model_usage,
                                GType *col_types,
                                GError **error);

Executes a selection command on the given connection.

This function returns a GdaDataModel resulting from the SELECT statement, or NULL if an error occurred.

This function is just a convenience function around the gda_connection_statement_execute() function.

See the documentation of the gda_connection_statement_execute() for information about the params list of parameters.

Parameters

cnc

a GdaConnection object.

 

stmt

a GdaStatement object.

 

params

a GdaSet object (which can be obtained using gda_statement_get_parameters()), or NULL.

[nullable]

model_usage

specifies how the returned data model will be used as a GdaStatementModelUsage enum

 

col_types

an array of GType to request each returned GdaDataModel's column's GType, terminated with the G_TYPE_NONE value. Any value left to 0 will make the database provider determine the real GType. col_types can also be NULL if no column type is specified.

[array][nullable]

error

a place to store an error, or NULL

 

Returns

a GdaDataModel containing the data returned by the data source, or NULL if an error occurred.

[transfer full]


gda_connection_statement_execute_non_select ()

gint
gda_connection_statement_execute_non_select
                               (GdaConnection *cnc,
                                GdaStatement *stmt,
                                GdaSet *params,
                                GdaSet **last_insert_row,
                                GError **error);

Executes a non-selection statement on the given connection.

This function returns the number of rows affected by the execution of stmt , or -1 if an error occurred, or -2 if the connection's provider does not return the number of rows affected.

This function is just a convenience function around the gda_connection_statement_execute() function. See the documentation of the gda_connection_statement_execute() for information about the params list of parameters.

See gda_connection_statement_execute() form more information about last_insert_row .

Parameters

cnc

a GdaConnection object.

 

stmt

a GdaStatement object.

 

params

a GdaSet object (which can be obtained using gda_statement_get_parameters()), or NULL.

[nullable]

last_insert_row

a place to store a new GdaSet object which contains the values of the last inserted row, or NULL.

[out][transfer full][nullable]

error

a place to store an error, or NULL

 

Returns

the number of rows affected (>=0) or -1 or -2


gda_connection_repetitive_statement_execute ()

GSList *
gda_connection_repetitive_statement_execute
                               (GdaConnection *cnc,
                                GdaRepetitiveStatement *rstmt,
                                GdaStatementModelUsage model_usage,
                                GType *col_types,
                                gboolean stop_on_error,
                                GError **error);

Executes the statement upon which rstmt is built. Note that as several statements can actually be executed by this method, it is recommended to be within a transaction.

If error is not NULL and stop_on_error is FALSE, then it may contain the last error which occurred.

Parameters

cnc

a GdaConnection

 

rstmt

a GdaRepetitiveStatement object

 

model_usage

specifies how the returned data model will be used as a GdaStatementModelUsage enum

 

col_types

an array of GType to request each returned GdaDataModel's column's GType, see gda_connection_statement_execute_select_full() for more information.

[array][nullable]

stop_on_error

set to TRUE if the method has to stop on the first error.

 

error

a place to store errors, or NULL

 

Returns

a new list of GObject pointers (see gda_connection_statement_execute() for more information about what they represent), one for each actual execution of the statement upon which rstmt is built. If stop_on_error is FALSE, then the list may contain some NULL pointers which refer to statements which failed to execute.

[transfer full][element-type GObject]

Since: 4.2


gda_connection_begin_transaction ()

gboolean
gda_connection_begin_transaction (GdaConnection *cnc,
                                  const gchar *name,
                                  GdaTransactionIsolation level,
                                  GError **error);

Starts a transaction on the data source, identified by the name parameter.

Before starting a transaction, you can check whether the underlying provider does support transactions or not by using the gda_connection_supports_feature() function.

Parameters

cnc

a GdaConnection object.

 

name

the name of the transation to start, or NULL.

[nullable]

level

the requested transaction level (use GDA_TRANSACTION_ISOLATION_SERVER_DEFAULT to apply the server default)

 

error

a place to store errors, or NULL

 

Returns

TRUE if the transaction was started successfully with the corresponding isolation level, FALSE otherwise.


gda_connection_commit_transaction ()

gboolean
gda_connection_commit_transaction (GdaConnection *cnc,
                                   const gchar *name,
                                   GError **error);

Commits the given transaction to the backend database. You need to call gda_connection_begin_transaction() first.

Parameters

cnc

a GdaConnection object.

 

name

the name of the transation to commit, or NULL.

[nullable]

error

a place to store errors, or NULL

 

Returns

TRUE if the transaction was finished successfully, FALSE otherwise.


gda_connection_rollback_transaction ()

gboolean
gda_connection_rollback_transaction (GdaConnection *cnc,
                                     const gchar *name,
                                     GError **error);

Rollbacks the given transaction. This means that all changes made to the underlying data source since the last call to gda_connection_begin_transaction() or gda_connection_commit_transaction() will be discarded.

Parameters

cnc

a GdaConnection object.

 

name

the name of the transation to commit, or NULL.

[nullable]

error

a place to store errors, or NULL

 

Returns

TRUE if the operation was successful, FALSE otherwise.


gda_connection_add_savepoint ()

gboolean
gda_connection_add_savepoint (GdaConnection *cnc,
                              const gchar *name,
                              GError **error);

Adds a SAVEPOINT named name .

Parameters

cnc

a GdaConnection object

 

name

name of the savepoint to add.

[nullable]

error

a place to store errors or NULL

 

Returns

TRUE if no error occurred


gda_connection_rollback_savepoint ()

gboolean
gda_connection_rollback_savepoint (GdaConnection *cnc,
                                   const gchar *name,
                                   GError **error);

Rollback all the modifications made after the SAVEPOINT named name .

Parameters

cnc

a GdaConnection object

 

name

name of the savepoint to rollback to.

[nullable]

error

a place to store errors or NULL

 

Returns

TRUE if no error occurred


gda_connection_delete_savepoint ()

gboolean
gda_connection_delete_savepoint (GdaConnection *cnc,
                                 const gchar *name,
                                 GError **error);

Delete the SAVEPOINT named name when not used anymore.

Parameters

cnc

a GdaConnection object

 

name

name of the savepoint to delete.

[nullable]

error

a place to store errors or NULL

 

Returns

TRUE if no error occurred


gda_connection_get_transaction_status ()

GdaTransactionStatus *
gda_connection_get_transaction_status (GdaConnection *cnc);

Get the status of cnc regarding transactions. The returned object should not be modified or destroyed; however it may be modified or destroyed by the connection itself.

If NULL is returned, then no transaction has been associated with cnc

Parameters

cnc

a GdaConnection object

 

Returns

a GdaTransactionStatus object, or NULL.

[transfer none]


gda_connection_value_to_sql_string ()

gchar *
gda_connection_value_to_sql_string (GdaConnection *cnc,
                                    GValue *from);

Produces a fully quoted and escaped string from a GValue

Parameters

cnc

a GdaConnection object.

 

from

GValue to convert from

 

Returns

escaped and quoted value or NULL if not supported.


gda_connection_supports_feature ()

gboolean
gda_connection_supports_feature (GdaConnection *cnc,
                                 GdaConnectionFeature feature);

Asks the underlying provider for if a specific feature is supported.

Parameters

cnc

a GdaConnection object.

 

feature

feature to ask for.

 

Returns

TRUE if the provider supports it, FALSE if not.


gda_connection_get_meta_store ()

GdaMetaStore *
gda_connection_get_meta_store (GdaConnection *cnc);

Get or initializes the GdaMetaStore associated to cnc

Parameters

cnc

a GdaConnection object

 

Returns

a GdaMetaStore object.

[transfer none]


gda_connection_update_meta_store ()

gboolean
gda_connection_update_meta_store (GdaConnection *cnc,
                                  GdaMetaContext *context,
                                  GError **error);

Updates cnc 's associated GdaMetaStore. If context is not NULL, then only the parts described by context will be updated, and if it is NULL, then the complete meta store will be updated. Detailed explanations follow:

In order to keep the meta store's contents in a consistent state, the update process involves updating the contents of all the tables related to one where the contents change. For example the "_columns" table (which lists all the columns of a table) depends on the "_tables" table (which lists all the tables in a schema), so if a row is added, removed or modified in the "_tables", then the "_columns" table's contents needs to be updated as well regarding that row.

If context is NULL, then the update process will simply overwrite any data that was present in all the meta store's tables with new (up to date) data even if nothing has changed, without having to build the tables' dependency tree. This is the recommended way of proceeding when dealing with a meta store which might be outdated.

On the other hand, if context is not NULL, then a tree of the dependencies has to be built (depending on context ) and only some parts of the meta store are updated following that dependencies tree. Specifying a context may be useful for example in the following situations:

  • One knows that a database object has changed (for example a table created), and may use the context to request that only the information about that table be updated

  • One is only interested in the list of views, and may request that only the information about views may be updated

When context is not NULL, and contains specified SQL identifiers (for example the "table_name" of the "_tables" table), then each SQL identifier has to match the convention the GdaMetaStore has adopted regarding case sensitivity, using gda_connection_quote_sql_identifier() or gda_meta_store_sql_identifier_quote().

see the meta data section about SQL identifiers for more information, and the documentation about the gda_sql_identifier_quote() function which will be most useful.

Note however that usually more information will be updated than strictly requested by the context argument.

For more information, see the Database structure section, and the Update the meta data about a table howto.

Parameters

cnc

a GdaConnection object.

 

context

description of which part of cnc 's associated GdaMetaStore should be updated, or NULL.

[nullable]

error

a place to store errors, or NULL

 

Returns

TRUE if no error occurred


gda_connection_get_meta_store_data ()

GdaDataModel *
gda_connection_get_meta_store_data (GdaConnection *cnc,
                                    GdaConnectionMetaType meta_type,
                                    GError **error,
                                    gint nb_filters,
                                    ...);

Retrieves data stored in cnc 's associated GdaMetaStore object. This method is useful to easily get some information about the meta-data associated to cnc , such as the list of tables, views, and other database objects.

Note: it's up to the caller to make sure the information contained within cnc 's associated GdaMetaStore is up to date using gda_connection_update_meta_store() (it can become outdated if the database's schema is modified).

For more information about the returned data model's attributes, or about the meta_type and ... filter arguments, see this description.

Also, when using filters involving data which are SQL identifiers, make sure each SQL identifier is represented using the GdaMetaStore convention, using gda_meta_store_sql_identifier_quote() or gda_meta_store_sql_identifier_quote().

See the meta data section about SQL identifiers for more information, and the documentation about the gda_sql_identifier_quote() function which will be most useful.

Parameters

cnc

a GdaConnection object.

 

meta_type

describes which data to get.

 

error

a place to store errors, or NULL

 

nb_filters

the number of filters in the @... argument

 

...

a list of (filter name (gchar *), filter value (GValue*)) pairs specifying the filter to apply to the returned data model's contents (there must be nb_filters pairs)

 

Returns

a GdaDataModel containing the data required. The caller is responsible for freeing the returned model using g_object_unref().

[transfer full]


gda_connection_get_meta_store_data_v ()

GdaDataModel *
gda_connection_get_meta_store_data_v (GdaConnection *cnc,
                                      GdaConnectionMetaType meta_type,
                                      GList *filters,
                                      GError **error);

see gda_connection_get_meta_store_data

Parameters

cnc

a GdaConnection object.

 

meta_type

describes which data to get.

 

error

a place to store errors, or NULL

 

filters

a GList of GdaHolder objects.

[element-type GdaHolder]

Returns

a GdaDataModel containing the data required. The caller is responsible for freeing the returned model using g_object_unref().

[transfer full]

Types and Values

GDA_CONNECTION_ERROR

#define GDA_CONNECTION_ERROR gda_connection_error_quark ()

enum GdaConnectionError

Members

GDA_CONNECTION_DSN_NOT_FOUND_ERROR

   

GDA_CONNECTION_PROVIDER_NOT_FOUND_ERROR

   

GDA_CONNECTION_PROVIDER_ERROR

   

GDA_CONNECTION_NO_CNC_SPEC_ERROR

   

GDA_CONNECTION_NO_PROVIDER_SPEC_ERROR

   

GDA_CONNECTION_OPEN_ERROR

   

GDA_CONNECTION_ALREADY_OPENED_ERROR

   

GDA_CONNECTION_STATEMENT_TYPE_ERROR

   

GDA_CONNECTION_CANT_LOCK_ERROR

   

GDA_CONNECTION_TASK_NOT_FOUND_ERROR

   

GDA_CONNECTION_CLOSED_ERROR

   

GDA_CONNECTION_META_DATA_CONTEXT_ERROR

   

GDA_CONNECTION_NO_MAIN_CONTEXT_ERROR

   

GDA_CONNECTION_NONEXIST_DSN_ERROR

#define GDA_CONNECTION_NONEXIST_DSN_ERROR GDA_CONNECTION_DSN_NOT_FOUND_ERROR

enum GdaConnectionStatus

Indicates the current status of a connection. The possible status and the transitions between those status are indicated in the diagram below:

GdaConnection's status and transitions between different status

Members

GDA_CONNECTION_STATUS_CLOSED

the connection is closed (default status upon creation)

 

GDA_CONNECTION_STATUS_OPENING

the connection is currently being opened

 

GDA_CONNECTION_STATUS_IDLE

the connection is opened but not currently used

 

GDA_CONNECTION_STATUS_BUSY

the connection is opened and currently being used

 

enum GdaConnectionOptions

Specifies some aspects of a connection when opening it.

Additional information about the GDA_CONNECTION_OPTIONS_SQL_IDENTIFIERS_CASE_SENSITIVE flag:

  • For example without this flag, if the table name specified in a GdaServerOperation to create a table is MyTable, then usually the database will create a table named mytable, whereas with this flag, the table will be created as MyTable (note that in the end the database may still decide to name the table mytable or differently if it can't do otherwise).

  • Libgda will not apply this rule when parsing SQL code, the SQL code being parsed has to be conform to the database it will be used with

Note about the GDA_CONNECTION_OPTIONS_AUTO_META_DATA flag:

  • Every time a DDL statement is successfully executed, the associated meta data, if defined, will be updated, which has a impact on performances

  • If a transaction is started and some DDL statements are executed and the transaction is not rolled back or committed, then the meta data may end up being wrong

Members

GDA_CONNECTION_OPTIONS_NONE

no specific aspect

 

GDA_CONNECTION_OPTIONS_READ_ONLY

this flag specifies that the connection to open should be in a read-only mode (this policy is not correctly enforced at the moment)

 

GDA_CONNECTION_OPTIONS_SQL_IDENTIFIERS_CASE_SENSITIVE

this flag specifies that SQL identifiers submitted as input to Libgda have to keep their case sensitivity.

 

GDA_CONNECTION_OPTIONS_AUTO_META_DATA

this flags specifies that if a GdaMetaStore has been associated to the connection, then it is kept up to date with the evolutions in the database's structure. Be aware however that there are some drawbacks explained below.

 

enum GdaConnectionFeature

Used in gda_connection_supports_feature() and gda_server_provider_supports_feature() to test if a connection or a database provider supports some specific feature.

Members

GDA_CONNECTION_FEATURE_AGGREGATES

test for aggregates support

 

GDA_CONNECTION_FEATURE_BLOBS

test for BLOBS (binary large objects) support

 

GDA_CONNECTION_FEATURE_INDEXES

test for indexes support

 

GDA_CONNECTION_FEATURE_INHERITANCE

test for tables inheritance support

 

GDA_CONNECTION_FEATURE_NAMESPACES

test for namespaces support

 

GDA_CONNECTION_FEATURE_PROCEDURES

test for functions support

 

GDA_CONNECTION_FEATURE_SEQUENCES

test for sequences support

 

GDA_CONNECTION_FEATURE_SQL

test for SQL language (even specific to the database) support

 

GDA_CONNECTION_FEATURE_TRANSACTIONS

test for transactions support

 

GDA_CONNECTION_FEATURE_SAVEPOINTS

test for savepoints within transactions support

 

GDA_CONNECTION_FEATURE_SAVEPOINTS_REMOVE

test if savepoints can be removed

 

GDA_CONNECTION_FEATURE_TRIGGERS

test for triggers support

 

GDA_CONNECTION_FEATURE_UPDATABLE_CURSOR

test for updatable cursors support

 

GDA_CONNECTION_FEATURE_USERS

test for users support

 

GDA_CONNECTION_FEATURE_VIEWS

test for views support

 

GDA_CONNECTION_FEATURE_TRANSACTION_ISOLATION_READ_COMMITTED

test for READ COMMITTED transaction isolation level

 

GDA_CONNECTION_FEATURE_TRANSACTION_ISOLATION_READ_UNCOMMITTED

test for READ UNCOMMITTED transaction isolation level

 

GDA_CONNECTION_FEATURE_TRANSACTION_ISOLATION_REPEATABLE_READ

test for REPEATABLE READ transaction isolation level

 

GDA_CONNECTION_FEATURE_TRANSACTION_ISOLATION_SERIALIZABLE

test for SERIALIZABLE transaction isolation level

 

GDA_CONNECTION_FEATURE_XA_TRANSACTIONS

test for distributed transactions support

 

GDA_CONNECTION_FEATURE_LAST

not used

 

enum GdaConnectionMetaType

Used with gda_connection_get_meta_store_data() to describe what meta data to extract from a connection's associated GdaMetaStore.

Members

GDA_CONNECTION_META_NAMESPACES

lists the namespaces (or schemas for PostgreSQL)

 

GDA_CONNECTION_META_TYPES

lists the database types

 

GDA_CONNECTION_META_TABLES

lists the tables

 

GDA_CONNECTION_META_VIEWS

lists the views

 

GDA_CONNECTION_META_FIELDS

lists the table's or view's fields

 

GDA_CONNECTION_META_INDEXES

lists the table's indexes

 

Property Details

The “auth-string” property

  “auth-string”              gchar *

Authentication string to use.

Flags: Read / Write

Default value: NULL


The “cnc-string” property

  “cnc-string”               gchar *

Connection string to use.

Flags: Read / Write

Default value: NULL


The “dsn” property

  “dsn”                      gchar *

DSN to use.

Flags: Read / Write

Default value: NULL


The “events-history-size” property

  “events-history-size”      gint

Defines the number of GdaConnectionEvent objects kept in memory which can be fetched using gda_connection_get_events().

Flags: Read / Write

Allowed values: >= 5

Default value: 5

Since: 4.2


The “execution-slowdown” property

  “execution-slowdown”       guint

Artificially slows down the execution of queries. This property can be used to debug some problems. If non zero, this value is the number of microseconds waited before actually executing each query. NB: this parameter is ignored during the meta store update (it is set to 0 before the meta data update and restored to its state after).

Flags: Read / Write

Default value: 0

Since: 5.2.0


The “execution-timer” property

  “execution-timer”          gboolean

Computes execution times for each statement executed.

Flags: Read / Write

Default value: FALSE

Since: 4.2.9


The “meta-store” property

  “meta-store”               GdaMetaStore *

GdaMetaStore used by the connection.

Flags: Read / Write


The “options” property

  “options”                  GdaConnectionOptions

Options.

Flags: Read / Write


The “provider” property

  “provider”                 GdaServerProvider *

Provider to use.

Flags: Read / Write

Signal Details

The “closed” signal

void
user_function (GdaConnection *cnc,
               gpointer       user_data)

Gets emitted when the connection to the database has been closed

Parameters

cnc

the GdaConnection

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “dsn-changed” signal

void
user_function (GdaConnection *cnc,
               gpointer       user_data)

Gets emitted when the DSN used by cnc has been changed

Parameters

cnc

the GdaConnection

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “error” signal

void
user_function (GdaConnection      *cnc,
               GdaConnectionEvent *event,
               gpointer            user_data)

Gets emitted whenever a connection event occurs. Check the nature of event to see if it's an error or a simple notification

Parameters

cnc

the GdaConnection

 

event

a GdaConnectionEvent object

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “opened” signal

void
user_function (GdaConnection *cnc,
               gpointer       user_data)

Gets emitted when the connection has been opened to the database

Parameters

cnc

the GdaConnection

 

user_data

user data set when the signal handler was connected.

 

Flags: Run First


The “status-changed” signal

void
user_function (GdaConnection      *cnc,
               GdaConnectionStatus status,
               gpointer            user_data)

Gets emitted when the cnc 's status has changed (usually when a the connection is being used to execute a statement)

Parameters

cnc

the GdaConnection

 

status

the new connection status.

[type GdaConnectionStatus]

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

Since: 6.0


The “transaction-status-changed” signal

void
user_function (GdaConnection *cnc,
               gpointer       user_data)

Gets emitted when the transaction status of cnc has changed (a transaction has been started, rolled back, a savepoint added,...)

Parameters

cnc

the GdaConnection

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last