mco_db_json_export
以 JSON 格式导出整个数据库内容或单个对象。
此函数将数据库数据导出到输出流。运行时会调用应用程序定义的处理程序来管理输出流。应用程序有责任以适当的模式打开输出流以流式传输二进制数据,并确保目的地有足够的空间来容纳数据库。索引不会被流式传输。
有关详细信息,请参阅控制结构 mco_stream_write
。
MCO_RET mco_db_json_export(
mco_trans_h t,
void *stream_handle,
mco_stream_write output_stream_writer
);
参数
t
mco_trans_h
由 mco_trans_start()
函数返回的事务句柄。
stream_handle
void *
输出流的句柄。
output_stream_writer
mco_stream_write
运行时调用的处理程序函数,用于格式化输出。
返回
MCO_S_OK
已成功导出数据库数据。
MCO_E_JSER_NOINDEX
某些类没有索引,因此无法导出数据库。
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);
}
/* 导出整个数据库内容的函数 */
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
- 源文件:
mcojser.c
- 库:
libmcojser.a