如何从sqlite3中获取数据而不使用while 1和if

How to fetch data from sqlite3 without using while 1 and if

本文关键字:while if sqlite3 数据 获取      更新时间:2023-10-16

我目前正在使用这种方法从sqlite3数据库获取数据:

while(1){
   rc = sqlite3_step(stmt);
   if(rc == SQLITE_ROW){
       ...
   }
   else if(rc == SQLITE_DONE){
       break;
   }
}

我不喜欢的是if else结构,它在这里看起来相当笨拙。而且,每个人都知道if else是邪恶的。因此,可能还有另一种从sqlite获取数据的方法,例如:

while(sqlite3_step(stmt)){
   ...
}

或者,可能有一个取回方法或者类似的东西

我只是想知道其他人在现实世界的项目中是怎么做的。

这样的代码应该可以完成这项工作,但是一定要在退出循环后检查错误。

while((rc = sqlite3_step(stmt)) == SQLITE_ROW)
{
...
}

编辑:请注意,这并没有考虑到数据库是否繁忙,但您可以在循环后使用条件goto或在rc不等于SQLITE_DONE时继续进行外部循环。