mco_trans_start_ex

Connect to a database with an Isolation Level.

Prototype

 
    MCO_RET	mco_trans_start_ex(	/*IN*/ mco_db_h db, 
                    /*IN*/ MCO_TRANS_TYPE trans_type,
                    /*IN*/ MCO_TRANS_PRIORITY priority, 
                    /*IN*/ MCO_TRANS_ISOLATION_LEVEL level,
                    /*OUT*/ mco_trans_h * t );
 

Arguments

db The database handle for a database connection
trans_type A one-byte unsigned value, taken from the enum MCO_TRANS_TYPE

priority

A two-byte unsigned value, taken from the enum MCO_TRANS_PRIORITY

level

An Isolation Level for MVCC Transaction Manager, taken from enum MCO_TRANS_ISOLATION_LEVEL

t

The address of a mco_trans_h to receive the transaction handle

Description

This function starts a transaction. It is an extended version of the function mco_trans_start() that allows setting the transaction isolation level only for the current transaction. This is in contrast with the method of calling mco_trans_set_default_isolation_level() that sets the isolation level for all transactions initiated from the current connection.

Return Codes

MCO_S_OK The database was created successfully
MCO_ERR_TRN A database transaction error occurred

Example

 
    const char * dbname = "SimpleDb";
     
    int main(int argc, char* argv[])
    {
        mco_db_h db;
        MCO_RET rc;
        mco_device_t       dev;
        mco_db_params_t    db_params;
        mco_trans_h t;
                 
        ...
        rc = mco_db_open_dev( dbname, simple_get_dictionary(), &dev, 1, &db_params );
        if ( MCO_S_OK != rc )
        {
            rc = mco_db_connect(  dbname, &db );
            ...
            rc = mco_trans_start_ex(db, MCO_READ_WRITE, MCO_TRANS_FOREGROUND, 
        
                        MCO_SERIALIZABLE, &t);
        
            if ( MCO_S_OK == rc ) 
            {
                ...
                rc = mco_trans_commit( t );
                ...
            }
        }
        ...
    }
     
 

Files

Header file:
mco.h
Source file:
mcoabst.c
Library:
libmcolib.a