# The C++ McoSqlOpenParameters Class

> The McoSqlOpenParameters constructors, methods and properties are listed below. Note that some items have links to pages with more detailed descriptions:

> McoSqlOpenParameters() | Default constructor; calls `setDefaultValues()` to initialize properties
> McoSqlOpenParameters( parameters list ) | Constructor with arguments to initialize properties
> setDefaultValues() | Method: Initialize properties with default values
> Properties
> char const* databaseName | Database name
> mco_dictionary_h dictionary | Database dictionary handle
> size_t mainMemoryDatabaseSize | Database size in main memory
> void* mainMemoryDatabaseAddress | Address of the main memory portion of the database
> size_t maxConnections | Maximum number of connections to the database
> size_t maxTransactionSize | Maximum size of a transaction
> size_t mainMemoryPageSize | Page size of the main memory portion of the database
> uint2 hashLoadFactor | The factor used to determine when a hash index table is extended. Indicates the percent of used items in the hash table. (See Hash Indexes)
> int flags | Bitmask indicating database open options (see page OpenFlags)
> int modeMask | The database open mode flags. These mode mask options are defined in file `mco.h`. (see Database Open Modes)
> char* savedImage | File path and name for a saved image (snapshot) of the database
> char* diskDatabaseFile | Name of the data file for the persistent part of the database
> char* diskDatabaseLogFile | Name of the log file for the persistent part of the database
> mco_offs_t diskDatabaseMaxSize | The max disk space required if a persistent database (See Creating Databases)
> void* diskCacheMemoryAddress | Address of the cache for the persistent part of the database
> size_t diskCacheSize | Cache size for the persistent part of the database
> int diskPageSize | Page size of the persistent part of the database
> MCO_LOG_TYPE logType | Type of logging for the persistent part of the database (see page Setting the Log Type)
> mco_offs_t redoLogLimit | Threshold for REDO logging type (see page Setting the Log Type)
> MCO_COMMIT_POLICY defaultCommitPolicy | The default Transaction Commit policy for the persistent part of the database (see page Persistent Database I/O)
> int compressionLevel | Compression level: 0 = no compression, 1 = compression enabled (default)
> MCO_TRANS_SCHED_POLICY transSchedPolicy | Scheduling policy for transactions with the same priority. (See MURSIW transaction scheduling policies)
> mco_stream_read streamReader | The reader callback function when loading a saved database image
> void* stream | The stream for reading when loading a saved database image
> McoSql::SqlEngine* remoteEngine | The RemoteSqlEngine if not null
> uint8 maxTransTime; | Maximal transaction time (0 to disable)
> int maxActivePages | Maximum number of pages (default is 32) in the page hash used internally by the eXtremeDB runtime when encryption protection or data compression is enabled. (See Database Encryption)
> mco_device_t* devices | The array of memory devices defined for the database
> size_t n_devices | The number of memory devices in the array `devices`
> McoSql::Table** tables | The array of Tables defined for this database
> size_t n_tables | The number of tables in the array `tables`
> McoSql::SqlOptimizerParameters optimizerParams | SQL optimizer parameters if not null
> size_t maxClasses | Used to reserve space for classes in the database header to allow dynamic schema modification. (This is commonly done via SQL `create table` or `alter table` operations, so this parameter has no relevance for non-SQL applications).
> size_t maxIndexes | Used to reserve space for indexes in the database header to allow dynamic schema modification (This is commonly done via SQL `create table` or `alter table` operations, so this parameter has no relevance for non-SQL applications).
> size_t maxDictionarySize | Used to reserve space for the dictionary in the database header to allow dynamic schema modification. (This is commonly done via SQL `create table` or `alter table` operations, so this parameter has no relevance for non-SQL applications).
> int dictionaryFlags | Dictionary flags. Possible values are `MCO_DICT_FLAGS_USE_AUTOOID` and `MCO_DICT_FLAGS_PRESERVE_FIELDS_ORDER` (By default values are set).
> size_t backupMapSize | Size of backup counters array, bytes, power of two, ignored if `disk_max_database_size` is set (set to zero to disable backup feature). (See Incremental Backup Implementation)
> unsigned int backupMinPages | Number of pages for last exclusive pass of backup procedure (set to zero to disable threshold). (See Incremental Backup Implementation)
> unsigned int backupMaxPasses | Max number of passes before exclusive pass of backup procedure. (See Incremental Backup Implementation)
> char *backupMapFile | The name of a file will be used to store backup temporary data on `mco_db_close()` call eXtremeDB will use the file system wrapper linked into the process to store the data. Can be set to zero to default to "<persistent-storage>.bmap" to locate the file at the same location as the persistent storage file. (See Incremental Backup Implementation)
> compressionLevel | The level of compression: 0 = no compression; 1 = best speed, 9 - best compression. Default value is 0