# mco_db_open
RT

This function is deprecated in eXtremeDB version 4.0 and later. It is retained for backward compatibility with in-memory only database applications written for previous versions of the eXtremeDB runtime. For applications using eXtremeDB version 4.0 and later the recommended database open API is `mco_db_open_dev()`.

### Prototype

        MCO_RET	mco_db_open(	/*IN*/ const char * dbname,
                    /*IN*/ mco_dictionary_h dict,
                    /*IN*/ void * mem,
                    /*IN*/ uint4 total_size,
                    /*IN*/ uint2 page_size);

### Arguments

dbname | The name of the database to open. Taken from the `declare database dbname` DDL statement. Note that the maximum database name length is 16 characters
dict | A handle to the dictionary that was created by the eXtremeDB schema compiler `mcocomp`. Normally, this handle is passed in by dbname_get_dictionary ()
mem | Heap memory allocated to contain the database
total_size | The amount of memory, in bytes, pointed to by `mem`
page_size | Size of the discrete blocks of `mem` that will be managed by the eXtremeDB page manager

### Description

> This function creates the database dbname in the space referenced by `mem` with an initial size of `total_size` (the database size can be extended) and with a page size of `page_size`.

### Return Codes

MCO_S_OK | The database was created successfully
MCO_E_PAGESIZE | Illegal page size
MCO_E_NOMEM | Not enough memory allocated
MCO_E_INSTANCE_DUPLICATE | Duplicate database instance
MCO_ERR_DB_VERS_MISMATCH | eXtremeDB version mismatch
MCO_ERR_DB_NOMEM | Insufficient memory for database operation
MCO_ERR_DB_NAMELONG | Database name longer than 16 characters

### Example

        Application snippet:

        const char * dbname = "SimpleDb";

        int main(int argc, char* argv[])
        {
            mco_db_h db;
            MCO_RET rc;
            char *mem = malloc( DBSIZE );

            if( (rc = mco_runtime_start()) != MCO_S_OK)
                exit(-1);

            rc = mco_db_open( dbname, simpledb_get_dictionary(), mem, DBSIZE, (uint2)PAGESIZE );

            ...
        }

### Files

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