← Back to Stormify Documentation
KDBC
Unified C Database Connectivity — SQLite, PostgreSQL, MariaDB, Oracle, MSSQL
Loading...
Searching...
No Matches
Transaction Control

Functions

int kdbc_set_autocommit (kdbc_conn *conn, int enabled)
 Enable or disable autocommit.
int kdbc_commit (kdbc_conn *conn)
 Commit the current transaction.
int kdbc_rollback (kdbc_conn *conn)
 Roll back the current transaction.
int kdbc_savepoint (kdbc_conn *conn, const char *name)
 Create a savepoint.
int kdbc_rollback_to (kdbc_conn *conn, const char *name)
 Roll back to a savepoint.
int kdbc_release_savepoint (kdbc_conn *conn, const char *name)
 Release a savepoint.

Detailed Description

Manage transactions, autocommit, and savepoints.

Autocommit is ON by default (matching JDBC convention). To use explicit transactions, disable autocommit first:

kdbc_execute_update(conn, "INSERT INTO t VALUES (1)");
kdbc_execute_update(conn, "INSERT INTO t VALUES (2)");
int kdbc_execute_update(kdbc_conn *conn, const char *sql)
Execute a non-parameterized DML/DDL statement directly.
int kdbc_set_autocommit(kdbc_conn *conn, int enabled)
Enable or disable autocommit.
int kdbc_commit(kdbc_conn *conn)
Commit the current transaction.

Savepoints allow partial rollback within a transaction:

kdbc_execute_update(conn, "INSERT INTO t VALUES (1)");
kdbc_savepoint(conn, "sp1");
kdbc_execute_update(conn, "INSERT INTO t VALUES (2)");
kdbc_rollback_to(conn, "sp1"); // undoes only the second INSERT
kdbc_commit(conn); // commits the first INSERT
int kdbc_savepoint(kdbc_conn *conn, const char *name)
Create a savepoint.
int kdbc_rollback_to(kdbc_conn *conn, const char *name)
Roll back to a savepoint.
Note
Oracle and MSSQL do not support RELEASE SAVEPOINT. Check with kdbc_driver_supports_release_savepoint() before calling kdbc_release_savepoint().

Function Documentation

◆ kdbc_set_autocommit()

int kdbc_set_autocommit ( kdbc_conn * conn,
int enabled )

Enable or disable autocommit.

Parameters
connAn open connection.
enabled1 to enable (default), 0 to disable.
Returns
KDBC_OK or KDBC_ERROR.

◆ kdbc_commit()

int kdbc_commit ( kdbc_conn * conn)

Commit the current transaction.

Parameters
connAn open connection.
Returns
KDBC_OK or KDBC_ERROR.

◆ kdbc_rollback()

int kdbc_rollback ( kdbc_conn * conn)

Roll back the current transaction.

Parameters
connAn open connection.
Returns
KDBC_OK or KDBC_ERROR.

◆ kdbc_savepoint()

int kdbc_savepoint ( kdbc_conn * conn,
const char * name )

Create a savepoint.

Parameters
connAn open connection (autocommit must be off).
nameSavepoint name.
Returns
KDBC_OK or KDBC_ERROR.

◆ kdbc_rollback_to()

int kdbc_rollback_to ( kdbc_conn * conn,
const char * name )

Roll back to a savepoint.

Parameters
connAn open connection.
nameSavepoint name (previously created with kdbc_savepoint()).
Returns
KDBC_OK or KDBC_ERROR.

◆ kdbc_release_savepoint()

int kdbc_release_savepoint ( kdbc_conn * conn,
const char * name )

Release a savepoint.

Note
Not supported on Oracle and MSSQL — check with kdbc_driver_supports_release_savepoint() first.
Parameters
connAn open connection.
nameSavepoint name to release.
Returns
KDBC_OK or KDBC_ERROR.