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()
.
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);
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 |
page_size |
Size of the discrete blocks of |
This function creates the database dbname in the space referenced by
mem
with an initial size oftotal_size
(the database size can be extended) and with a page size ofpage_size
.
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 |
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 ); ... }