微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 pqxx 6.4 将子复合部分作为行获取?

如何解决如何使用 pqxx 6.4 将子复合部分作为行获取?

我尝试在生成代码添加 C++ 对象的 SLQ 表示。 每个 c++ 类都有一个构建器,负责从 sql 数据库保存/恢复对象。

我有一个这样的电话

SELECT With_ext_key.id,With_ext_key.name3,(k1_table.id,k1_table.name1,k1_table.name2,k1_table.re) as k1,(k2_table.id,k2_table.name1,k2_table.name2,k2_table.re) as k2
 FROM With_ext_key
      INNER JOIN With_key AS k1_table ON k1_table.id = With_ext_key.k1
      INNER JOIN With_key AS k2_table ON k2_table.id = With_ext_key.k2 

我得到的结果看起来像。

1|fn1|(5,"name A","name B",0.2)|(6,"name C","name D",0.5)

我的 C++ 代码看起来像。

class With_key {
  void build_from_sql(pqxx::row d);
  ...
};

class With_ext_key {
 void build_from_sql(pqxx::row d);
 ...
};

void With_ext_key::build_from_sql(pqxx::row d) {
  this->id = d["id"].as<int>();
  this->name3 = d["name3"].as<std::string>();
  this->k1.build_from_sql(d[k1].as<pqxx::row>()); // this line failled i cannot access to sub element.
}

d[k1] 是一个字段,我没有找到任何方法来探索这个子数据作为一行。 我刚发现复合系统,但这种方法破坏了公共/私有或重复代码

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。