GdaTransactionStatus

GdaTransactionStatus — Keeps track of the transactional status of a connection

Synopsis

struct              GdaTransactionStatus;
enum                GdaTransactionIsolation;
struct              GdaTransactionStatusEvent;
enum                GdaTransactionStatusEventType;
enum                GdaTransactionStatusState;
GdaTransactionStatus * gda_transaction_status_new       (const gchar *name);

Object Hierarchy

  GObject
   +----GdaTransactionStatus

Description

On any connection (as a GdaConnection object), if the database provider used by the connection supports it, transactions may be started, committed or rolledback, or savepoints added, removed or rolledback. These operations can be performed using Libgda's API (such as gda_connection_begin_transaction()), or directly using some SQL on the connection (usually a "BEGIN;" command). The GdaTransactionStatus's aim is to make it easy to keep track of all the commands which have been issued on a connection regarding transactions.

One GdaTransactionStatus object is automatically attached to a GdaConnection when a transaction is started, and is destroyed when the transaction is finished. A pointer to this object can be fetched using gda_connection_get_transaction_status() (beware that it should then not be modified).

Details

struct GdaTransactionStatus

struct GdaTransactionStatus;


enum GdaTransactionIsolation

typedef enum {
	GDA_TRANSACTION_ISOLATION_UNKNOWN,
	GDA_TRANSACTION_ISOLATION_READ_COMMITTED,
	GDA_TRANSACTION_ISOLATION_READ_UNCOMMITTED,
	GDA_TRANSACTION_ISOLATION_REPEATABLE_READ,
	GDA_TRANSACTION_ISOLATION_SERIALIZABLE
} GdaTransactionIsolation;

GDA_TRANSACTION_ISOLATION_UNKNOWN

GDA_TRANSACTION_ISOLATION_READ_COMMITTED

GDA_TRANSACTION_ISOLATION_READ_UNCOMMITTED

GDA_TRANSACTION_ISOLATION_REPEATABLE_READ

GDA_TRANSACTION_ISOLATION_SERIALIZABLE


struct GdaTransactionStatusEvent

struct GdaTransactionStatusEvent {
	GdaTransactionStatus         *trans;
	GdaTransactionStatusEventType type;
	union {
		gchar                *svp_name; /* save point name if this event corresponds to a new save point */
		gchar                *sql;      /* SQL to store SQL queries in transactions */
		GdaTransactionStatus *sub_trans;/* sub transaction event */
	} pl;
	GdaConnectionEvent           *conn_event;

	gpointer  reserved1;
	gpointer  reserved2;
};


enum GdaTransactionStatusEventType

typedef enum {
	GDA_TRANSACTION_STATUS_EVENT_SAVEPOINT,
	GDA_TRANSACTION_STATUS_EVENT_SQL,
	GDA_TRANSACTION_STATUS_EVENT_SUB_TRANSACTION
} GdaTransactionStatusEventType;

GDA_TRANSACTION_STATUS_EVENT_SAVEPOINT

GDA_TRANSACTION_STATUS_EVENT_SQL

GDA_TRANSACTION_STATUS_EVENT_SUB_TRANSACTION


enum GdaTransactionStatusState

typedef enum {
	GDA_TRANSACTION_STATUS_STATE_OK,
	GDA_TRANSACTION_STATUS_STATE_FAILED
} GdaTransactionStatusState;

GDA_TRANSACTION_STATUS_STATE_OK

GDA_TRANSACTION_STATUS_STATE_FAILED


gda_transaction_status_new ()

GdaTransactionStatus * gda_transaction_status_new       (const gchar *name);

Creates a new GdaTransactionStatus object, which allows a fine-tune and full control of transactions to be used with providers.

name :

name for the transaction

Returns :

the newly created object.