open(params)
此方法使用 McoSqlOpenParameters 实参 params 打开 SmartEDB 数据库、SmartEDB SQL 映射器和 McoSqlEngine 实例。
void open(
¶ms
);
参数
params
McoSqlOpenParameters const
初始化的McoSqlOpenParameters
实例,指定内存设备页面大小和其他数据库打开参数。
返回
RuntimeException
在出现错误的情况下抛出一个 RuntimeException 异常。
示例
const char * dbname = "RaidDb";
const int n_devices = 5;
int main(int argc, char* argv[])
{
MCO_RET rc;
mco_device_t dev[n_devices];
McoSqlEngine engine;
McoSqlOpenParameters params;
...
dev[0].type = MCO_MEMORY_CONV;
dev[0].assignment = MCO_MEMORY_ASSIGN_DATABASE;
dev[0].size = DATABASE_SIZE;
dev[0].dev.conv.ptr = (void*)malloc( DATABASE_SIZE );
dev[1].type = MCO_MEMORY_CONV;
dev[1].assignment = MCO_MEMORY_ASSIGN_CACHE;
dev[1].size = CACHE_SIZE;
dev[1].dev.conv.ptr = (void*)malloc( CACHE_SIZE );
dev[2].type = MCO_MEMORY_RAID;
dev[2].assignment = MCO_MEMORY_ASSIGN_PERSISTENT;
strcpy(dev[2].dev.raid.name, "raidpart.1");
dev[2].dev.raid.flags = MCO_FILE_OPEN_DEFAULT;
dev[2].dev.raid.level = 1;
dev[3].type = MCO_MEMORY_RAID;
dev[3].assignment = MCO_MEMORY_ASSIGN_PERSISTENT;
strcpy(dev[3].dev.raid.name, "raidpart.2");
dev[3].dev.raid.flags = MCO_FILE_OPEN_DEFAULT;
dev[3].dev.raid.level = 1;
dev[4].type = MCO_MEMORY_FILE;
dev[4].assignment = MCO_MEMORY_ASSIGN_LOG;
strcpy(dev[4].dev.file.name, "persondb.log");
dev[4].dev.file.flags = MCO_FILE_OPEN_DEFAULT;
params.databaseName = (char *)db_name;
params.dictionary = persondb_get_dictionary();
params.mainMemoryDatabaseSize = DATABASE_SIZE;
params.mainMemoryPageSize = MEMORY_PAGE_SIZE;
params.n_devices = n_devices;
params.devices = dev;
engine.open(params);
...
}