mco_db_save_metadata
将数据库内部数据布局定义保存到外部文件。
此函数用于将 SmartEDB 数据库的元数据以 xSQL 配置文件格式(JSON)流式传输到永久存储中。此文件稍后可加载到 xSQL 中,以便作为客户端应用程序连接到数据库。
请注意,此功能仅应用于使用静态数据库模式的应用程序。
MCO_RET mco_db_save_metadata(
/*IN*/ void * stream_handle,
/*IN*/ mco_stream_write output_stream_writer,
/*IN*/ mco_db_h db,
/*IN*/ mco_bool save_defaults
);
参数
stream_handle
void *
输出流的句柄。
output_stream_writer
mco_stream_write
运行时调用的处理程序函数,用于格式化输出。
db
mco_db_h
数据库句柄。
save_defaults
mco_bool
除了明确设置的值之外,还要保存默认值:1=true= MCO_YES
,0=false= MCO_NO
。
返回
MCO_S_OK
已成功保存数据库镜像。
MCO_E_NOINSTANCE
指定的数据库未打开。
MCO_E_WRITE_STREAM
写入输出流时出错。
示例
/* 与 mco_stream_write 原型匹配的流写入器函数 */
mco_size_sig_t file_writer(void *stream_handle /* FILE * */, const void *from, mco_size_t nbytes)
{
return fwrite(from, 1, nbytes, (FILE *)stream_handle);
}
/* Function to export the entire database contents */
void export_all()
{
mco_trans_h t;
FILE *f = fopen("db.json", "wb");
/* 导出数据库 */
mco_trans_start(db, MCO_READ_ONLY, MCO_TRANS_FOREGROUND, &t);
mco_db_json_export(t, f, file_writer);
mco_trans_rollback(t);
fclose(f);
}
文件
- 头文件:
mco.h
- 源文件:
mcodbcfg.c
- 库:
libmcolib.a