gpt4 book ai didi

c++ - GetFirst 和 GetNext 调用以从持久类中获取记录

转载 作者:行者123 更新时间:2023-11-30 05:45:19 31 4
gpt4 key购买 nike

这更像是一个设计层面的问题。我有一个持久类,它通过 SQL 查询从数据库中查询记录,并通过一个名为 getNext() 的成员函数返回给调用者,该函数的签名如下:

int getNext(); // returns 0 on failure and 1 on success

我没有 getFirst() 调用。因此,调用者通常会运行一个 while 循环来获取数据,例如

while (obj.getNext() > 0) {
obj.getValues(0;
...
}

在 getNext() 实现中,如果没有数据(第一次调用)或没有更多数据(while 循环中的最后一次调用),我在输出中写入“未找到数据”并返回 0,否则检索数据并返回 1。有什么聪明的方法可以从 getNext() 调用中知道这是第一次调用(没有数据意味着查询没有结果)并且这是循环内的非第一次调用,没有数据意味着查询没有更多结果显示,这很好,因此不会显示“未找到数据”。

建议?

最佳答案

我将初始化为 truebool firstCall 作为您类(class)的成员。在 getNext() 结束时,您可以将 firstCall 设置为 false。因此对于 getNext() 的所有连续调用都将为 false。

您现在可以根据 firstCall 值显示正确的输出。

执行新查询时,firstCall 必须重置为 false

关于c++ - GetFirst 和 GetNext 调用以从持久类中获取记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29427807/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com