PDF下载 下载

DataSet 结果集

DataSet类是基本面数据查询结果的标准返回, 表示一个二维表数据存储。类声明如下:

  1. class DataSet
  2. {
  3. public:
  4. //获取api调用结果, 0: 成功, 非0: 错误码
  5. virtual int status() = 0;
  6. //判断是否已经是到达结果集末尾
  7. virtual bool is_end() = 0;
  8. //移到下一条记录
  9. virtual void next() = 0;
  10. //获取整型值
  11. virtual int get_integer(const char *key) = 0;
  12. //获取长整型值
  13. virtual long long get_long_integer(const char *key) = 0;
  14. //获取浮点型值
  15. virtual double get_real(const char *key) = 0;
  16. //获取字符串型值
  17. virtual const char* get_string(const char *key) = 0;
  18. //释放数据集合
  19. virtual void release() = 0;
  20. //打印数据
  21. virtual const char* debug_string() = 0;
  22. };

典型的使用场景如下:

  1. 调用数据查询函数返回一个DataSet对象指针 DataSet *ds;
  2. 调用ds->status() 判断函数调用是否成功,0表示成功,非0表示错误码,调用失败,结果集为空。
  3. 如果ds->status()返回成功,调用ds->is_end()ds->next() 遍历结果集取值。
  4. 调用ds->release() 释放结果集。

debug_string 用于返回整个结果集内容, 包含字段和值, 一般用于开发调试, 快速知晓结果集的表结构。

使用举例

  1. //获取深交所最新的代码信息
  2. DataSet* jy = get_instruments("SZSE");
  3. if (jy->status() == 0)
  4. {
  5. //调用get_instruments成功, 以下遍历结果集
  6. while (!jy->is_end()) //先要判断是否已经到达结果集末尾
  7. {
  8. cout << jy->get_string("symbol") << endl; //取字符串值
  9. cout << jy->get_integer("sec_level") << endl; //取整型值
  10. cout << jy->get_real("pre_close") << endl; //取浮点值
  11. jy->next(); //移动到下一条记录
  12. }
  13. }
  14. else
  15. {
  16. // 调用get_instruments 失败, jy->status() 为错误码
  17. cout << "get_instruments error: " << jy->status() << endl;
  18. }
  19. // 使用完结果集要释放
  20. jy->release();
0 篇笔记