DataSet 结果集
DataSet类是基本面数据查询结果的标准返回, 表示一个二维表数据存储。类声明如下:
class DataSet{public://获取api调用结果, 0: 成功, 非0: 错误码virtual int status() = 0;//判断是否已经是到达结果集末尾virtual bool is_end() = 0;//移到下一条记录virtual void next() = 0;//获取整型值virtual int get_integer(const char *key) = 0;//获取长整型值virtual long long get_long_integer(const char *key) = 0;//获取浮点型值virtual double get_real(const char *key) = 0;//获取字符串型值virtual const char* get_string(const char *key) = 0;//释放数据集合virtual void release() = 0;//打印数据virtual const char* debug_string() = 0;};
典型的使用场景如下:
- 调用数据查询函数返回一个DataSet对象指针 DataSet *ds;
- 调用
ds->status()判断函数调用是否成功,0表示成功,非0表示错误码,调用失败,结果集为空。 - 如果
ds->status()返回成功,调用ds->is_end()与ds->next()遍历结果集取值。 - 调用
ds->release()释放结果集。
debug_string 用于返回整个结果集内容, 包含字段和值, 一般用于开发调试, 快速知晓结果集的表结构。
使用举例
//获取深交所最新的代码信息DataSet* jy = get_instruments("SZSE");if (jy->status() == 0){//调用get_instruments成功, 以下遍历结果集while (!jy->is_end()) //先要判断是否已经到达结果集末尾{cout << jy->get_string("symbol") << endl; //取字符串值cout << jy->get_integer("sec_level") << endl; //取整型值cout << jy->get_real("pre_close") << endl; //取浮点值jy->next(); //移动到下一条记录}}else{// 调用get_instruments 失败, jy->status() 为错误码cout << "get_instruments error: " << jy->status() << endl;}// 使用完结果集要释放jy->release();