mco_db_open_disk
创建或打开一个持久数据库。
此功能是为了与 SmartEDB 3.5 版本兼容而提供的,取代了已弃用的 mco_db_open()
和 mco_disk_open()
函数组合。
对于使用 SmartEDB 4.0 及更高版本的应用程序,请使用 mco_db_open_dev()
函数。
MCO_RET mco_db_open(
/*IN*/ const char * dbname,
/*IN*/ mco_dictionary_h dict,
/*IN*/ void * mem_ptr,
/*IN*/ mco_size_t mem_size,
/*IN*/ mco_size_t mem_page_size,
/*IN*/ const char * db_file_path,
/*IN*/ const char * log_file_path,
/*IN*/ void * disk_cache_ptr,
/*IN*/ mco_size_t disk_cache_size,
/*IN*/ mco_size_t disk_page_size,
/*IN*/ mco_offs_t max_database_size,
/*IN*/ MCO_LOG_TYPE log_type
);
参数
dbname
const char *
要打开的数据库名称。从declare database dbname
”DDL 语句中获取。数据库名称的最大长度为 16 个字符。
dict
mco_dictionary_h
这是由 SmartEDB 架构编译器 mcocomp 创建的字典的句柄。通常,此句柄由 dbname_get_dictionary()
传递进来。
mem_ptr
void *
数据库元数据的常规内存地址。
mem_size
mco_size_t
常规内存部分的大小。
mem_page_size
mco_size_t
数据库页面的大小。
db_file_path
const char *
数据库数据文件路径。
log_file_path
const char *
数据库日志文件路径。
disk_cache_ptr
void *
用于磁盘缓存的常规内存地址。
disk_cache_size
mco_size_t
磁盘缓存的大小。
disk_page_size
mco_size_t
磁盘缓存页面的大小。
max_database_size
mco_offs_t
数据库的最大容量。
log_type
MCO_LOG_TYPE
数据库日志类型。
返回
MCO_S_OK
已成功创建/打开数据库。
MCO_E_ILLEGAL_PARAM
非法组合数据库参数。数据库没有内存段,或者数据库没有持久段或缓存段。
MCO_E_NOMEM
未分配足够的内存。(例如,没有足够的内存来创建索引)
MCO_E_INSTANCE_DUPLICATE
重复的数据库实例,即尝试打开与当前打开的数据库同名的数据库。
MCO_E_SHM_ERROR
尝试创建、截断或关闭共享内存段时出错 。
MCO_E_INMEM_ONLY_RUNTIME
数据库字典包含持久对象,但应用程序与内存中运行时库链接。
MCO_ERR_DB_NAMELONG
数据库名称长度超过 16 个字符 。
MCO_E_DISK_INVALID_PARAM
磁盘数据库创建参数无效。
MCO_E_DISK_ALREADY_OPENED
指定的磁盘设备已打开。
文件
- 头文件:
mco.h
- 源文件:
mcodb.c
- 库:
libmcolib.a