对于连接器 c++ 1.1,在此示例中,通过指定列名(或别名)很容易获取值。
但是当我升级到 8.0 xdevapi 版本时,我发现不再支持这个功能。
#include <mysqlx/xdevapi.h>
using namespace std;
using namespace mysqlx;
Session sess(<server_url>);
auto result = sess.sql("SELECT * FROM student").execute();
Row row = result.fetchOne();
cout << row[0] << endl; // <- ok
cout << row["ID"] << endl; // <- can compile but garbage output
cout << row.get("ID") << endl; // <- cannot compile
我知道可以从中检索列名result.getColumn(n).getColumnLabel()
,但 IMO 它没用。“字段”->“索引”映射可以真正帮助开发人员。
我是 C++ 新手,所以下面的句子可能太天真了。以下是我猜测的可能方式:
- 构造一个STL映射来记录映射
- 遍历
result.getColumns()
,然后检查getColumnLabel()
- 像
indexOf
什么?但我发现result.getColumns()
不支持这种方法,因为它是deque