mco_fh_writer_store_record
向数据库写入一条记录。
此函数将传入的记录写入分配给此写入器的表中。
mco_fh_ret mco_fh_writer_store_record(
/*IN*/ mco_fh_writer_h wr,
/*IN*/ mco_fh_record_h rec
)参数
wr
mco_fh_writer_h
写入器句柄。
rec
mco_fh_record_h
记录器句柄。
返回
MCO_FH_OK
记录写入成功。
MCO_FH_E_BAD_HANDLE
写入器或记录器句柄无效。
示例
...
// 从信息流中获取下一条报价
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;
// optionally, reset the record's contents
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_string(record, fieldIndex, 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);
}
...