使用PQsetSingleRowMode是否可以保证PQntuples为1?

时间:2019-05-16 20:21:57

标签: postgresql libpq

我已经开始使用DBUser.hasMany(DBTweet, { as: 'Users', foreignKey: 'userID', onDelete: 'cascade' }) DBTweet.belongsTo(DBUser, { as: 'Users', foreignKey: 'userID', onDelete: 'cascade' }) DBUser.hasMany(DBFollower, { as: 'followingUserIDAlias', foreignKey: 'followingUserID', onDelete: 'cascade' }) DBFollower.belongsTo(DBUser, { as: 'followingUserIDAlias', foreignKey: 'followingUserID', onDelete: 'cascade' }) DBUser.hasMany(DBFollower, { as: 'followerUserIDAlias', foreignKey: 'followerUserID', onDelete: 'cascade' }) DBFollower.belongsTo(DBUser, { as: 'followerUserIDAlias', foreignKey: 'followerUserID', onDelete: 'cascade' }) 来对PQsetSingleRowMode之后的流数据进行更多控制。您需要打更多的电话PQsendQueryParams,但是事实上是否可以保证每次都会得到一条记录,因此PQgetResult返回1?

我问,是因为我不确定丢弃PQntuples检查并循环多次的代码是否100%安全。另外,我不介意它是否大于1。或者是否存在单独的“消防水带模式”,在此模式中,您可以获得自从上一个{{1} } ...

1 个答案:

答案 0 :(得分:0)

在单行模式下,PQgetResult将始终产生最多一行的结果。请注意,最后返回的PGresult *将为空。

如果要将结果集分成多行而不是一行,则必须使用游标和FETCH