我是SQLite,C ++的新手,在理解如何处理查询返回的多行方面遇到了一些麻烦。我需要将每列的值设置为一个变量,以便稍后处理它。
我到目前为止:
sqlite3_stmt* statement;
if (sqlite3_prepare_v2(getDatabase(), _sql.c_str(), -1, &statement, 0)
== SQLITE_OK)
{
int cols = sqlite3_column_count(statement);
int result = 0;
while(true)
{
result = sqlite3_step(statement);
if(result == SQLITE_ROW)
{
for(int col = 0; col < cols; col++)
{
// go through each column and store it
}
}
else
{
break;
}
}
}
那么我在for
循环中该怎么办?
if (col == 0) // first column position
{
// store it...
}
else if (col == 1) // second column position
{
// store it...
}
或有没有办法按列名进行?
还是有更好的方法来解决这个问题吗?
答案 0 :(得分:0)
我明白了。
正确的程序是遍历每一行并使用sqlite_column(statement, [col#])