mco_calc_reg_schema_classes
在数据库模式中枚举的类进行注册。
此函数会注册数据库模式(和字典)中枚举的类。它使用字典中关于每个数据库类所需对象数量的内置信息来初始化计算器。此信息与数据库字典分开存储,因此在调用 mco_calc_fill_db()
之前,需要让计算器知晓这些信息。传入 calc
的计算器句柄必须首先通过调用 mco_calc_init() 进行初始化,以链接数据库字典。也可以使用替代方法 mco_calc_register_classes()
显式地将类注册到计算器。
MCO_RET mco_calc_reg_schema_classes(
/*IN*/ mco_calc_t * calc,
/*IN*/ mco_calculator_h ch
);
参数
calc
mco_calc_t *
通过 mco_calc_init()
初始化的计算器对象的句柄。
ch
mco_calculator_h
指向新计算器对象的句柄。通常,通过调用 dbname_getCalculator()
函数传入此句柄。
返回
MCO_S_OK
计算器初始化成功。
MCO_E_NOMEM
分配类时内存不足。
示例
/* 应用程序代码片段 */
const char * dbname = "calc_db";
int main(int argc, char* argv[])
{
MCO_RET rc;
mco_device_t dev;
mco_calc_t calc;
mco_db_params_t db_params;
mco_runtime_start();
...
mco_calc_init(&calc, calc_db_get_dictionary());
...
rc = mco_db_open_dev( dbname, simple_get_dictionary(), &dev, 1, &db_params );
if ( MCO_S_OK != rc )
{
rc = mco_db_connect( dbname, &calc.db );
...
rc = mco_calc_reg_schema_classes(&calc, calc_db_get_calculator());
}
/* NOTE: calculator *must* be deinitialized before you disconnect from the database */
mco_calc_deinit(&calc);
mco_db_disconnect(calc.db);
}
有关实现细节,请参阅SDK示例 samples/native/core/17-statistics/dbcalc。
文件
- 头文件:
mcodbcalc.h
- 源文件:
mcodbcalc.c
- 库:
libmcodbcalc.a