mco_fh_record_set_field_string
此函数设置记录字段的字符数组值。
将复制 len 个字节到目标字段。
mco_fh_ret mco_fh_record_set_field_char_array(
/*IN*/ mco_fh_record_h rec,
/*IN*/ mco_offs_t field,
/*IN*/ const char *array,
/*IN*/ mco_size_t len
);参数
rec
mco_fh_record_h
记录器句柄。
field
mco_offs_t
记录中字段的索引。
array
const char
要设置的字符数组值。
len
mco_size_t
数组的大小(以字节为单位)。
返回
MCO_FH_OK
记录销毁成功。
MCO_FH_E_BAD_HANDLE
记录器句柄无效。
MCO_FH_E_BAD_PARAM
数组参数为空。
示例
...
// 从信息流中获取下一条报价
FeedQuote *quote = feed->nextQuote();
std::vector<TableInfo>::iterator it;
for (it = tables.begin(); it != tables.end(); ++it)
{
// 获取先前创建的写入器和记录器的句柄
mco_fh_writer_t writer = it->writer;
mco_fh_record_t record = it->record;
// 可选地,重置记录的内容
mco_fh_record_zero_out(record);
// 只填写记录中的必填字段。
for (size_t fieldIndex = 0; fieldIndex < it->fields.size(); fieldIndex++)
{
if (it->fields[fieldIndex] == "symbol")
{
mco_fh_record_set_field_char_array(record, fieldIndex, quote->symbol, strlen(quote->symbol));
} else if (it->fields[fieldIndex] == "exchangeCode") {
mco_fh_record_set_field_int4(record, fieldIndex, quote->exchangeCode);
} else if (it->fields[fieldIndex] == "bid") {
mco_fh_record_set_field_float(record, fieldIndex, quote->bid);
} else if (it->fields[fieldIndex] == "ask") {
mco_fh_record_set_field_float(record, fieldIndex, quote->ask);
} else if (it->fields[fieldIndex] == "isNBBO") {
mco_fh_record_set_field_bool(record, fieldIndex, quote->isNBBO);
}
}
// 将记录写入数据库
mco_fh_writer_store_record(writer, record);
}
...