mco_calc_iinfo_browse
浏览计算器索引。
原型
MCO_RET mco_calc_iinfo_browse(
/*IN*/ mco_calc_t * calc,
/*IN*/ mco_calc_iinfo_h handler,
/*IN*/ void * data
);
参数
calc
mco_calc_t *
初始化的数据库计算器对象的句柄。
handler
mco_calc_cinfo_h
用户提供的用于处理类信息的处理函数。
data
void *
指向用户提供的数据的指针。
返回
MCO_S_OK
索引统计信息收集成功。
MCO_E_TRANSACT
在计算器处理期间,事务处于错误状态。
示例
/* 应用程序代码片段 */
const char * dbname = "calc_db";
static void index_print(mco_calc_t *calc, mco_cc_t *cls,
mco_index_stat_t *istat, void *unused)
{
int tmp, psize = 0;
char *str = NULL, c;
if ((istat->type & MCO_IDXST_TYPE_MASK) == MCO_IDXST_TYPE_MEM) {
str = "Inmem";
psize = calc->pg_size;
}
else if ((istat->type & MCO_IDXST_TYPE_MASK) == MCO_IDXST_TYPE_DISK) {
str = "Disk";
psize = _disk_page_size;
}
printf(" -> %s [%s ", istat->plabel, str);
...
}
int main(int argc, char* argv[])
{
MCO_RET rc;
mco_device_t dev;
mco_calc_t calc;
mco_db_params_t db_params;
mco_cc_info_t info;
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());
...
rc = mco_calc_fill_db(&calc);
...
rc = mco_calc_stat_collect(&calc);
...
printf("\Index info:\n");
rc = mco_calc_iinfo_browse(&calc, index_print, (void*)0);
...
/* 在断开数据库连接之前,必须先关闭计算器。 */
mco_calc_deinit(&calc);
mco_db_disconnect(calc.db);
}
}
有关实现细节,请参阅SDK示例 samples/native/core/17-statistics/dbcalc。
文件
- 头文件:
mcodbcalc.h
- 源文件:
mcodbcalc.c
- 库:
libmcodbcalc.a