我是SQLite,C ++的新手,在理解如何处理查询返回的多行时遇到一些麻烦。 我需要将每列的值都放入一个变量int,以便稍后进行处理。

我到目前为止:

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...
}

还是有办法通过列名做到这一点?

还是有更好的方法来解决这个问题?

===============>>#1 票数:0 已采纳

我想到了。

正确的过程是遍历每一行并使用sqlite_column(statement, [col#])

  ask by Jason translate from so

未解决问题?本站智能推荐:

1回复

如何使用一个结果集处理程序消除多个类似的SQL查询?

我有一些类似的sql查询,所有选定的字段都相同,只是条件不同。 因此,结果集处理程序也相同。 我使用sqlite3和sqlite_modern_cpp 。 这是两个类似的功能(还有其他几个功能): 您会看到,查询中的所有字段均为“ id,name,price,qty”,结果集处
1回复

我认为错的C ++ sqlite3插入或替换查询

我已更正我的数据库,但是当我执行命令时,出现错误。 我的桌子: 我的声明: 我不确定这应该如何工作。 要插入。 它将看到PK匹配项。...然后,它将替换,它将尝试用自身替换PK吗? 我不确定。 RC给出的返回的ErrorCode为:
1回复

C ++ SQLite3更新后立即返回空查询

我在使用SQLite 3版本3.7.14.1时遇到问题,如果我进行更新,则立即尝试执行查询,它将返回0结果,就好像它不存在一样。 这是我的日志示例: 如果我对'3'进行更新并选择'2',就没有问题,只有当我对'2'进行更新并选择'2'时(或者在同一记录上执行UPDATE和SELEC
2回复

验证数据库的结构? (SQLite in C ++ / Qt)

我想知道在Qt / C ++中使用SQLite验证数据库结构的“最佳”方法是什么。 我正在使用SQLite,所以有一个文件包含我的数据库,我想确保在启动程序时,数据库的结构应该是这样的 - 即,它有X个表,每个表都有自己的Y列,有适当的名字等。有人能指出我正确的方向吗? 非常感谢!
2回复

sqlite C API,UDATE数据库

我目前正在努力开发一种在已经拥有的程序中创建编辑窗口的方法,该方法可访问已设置的Sqlite数据库,该数据库包含4条信息,条目ID,条目名称(由用户指定) ),文件位置(也是用户输入的)和组的成员。 在编辑窗口中,有两个标签,一个用于名称的文本输入框和一个用于打开文件浏览器的按钮。 我的问题
1回复

删除行后,如何重新索引或修复rowid sqlite?

好吧,我处于一个非常困难的境地,或者至少我认为是这样。 我一直在研究如何解决我的问题,但确实是空手而归。 删除行后,我需要能够重新索引表的rowid。 这样,在任何给定时间,当我想通过rowid更新或索引一行时,它都在访问正确的行。 现在,对于那些问为什么的人。 基本上,我连接
1回复

将C ++键/值结构转换为数据库(sqlite3)

我有一个C ++键/值表,如下所示: 我想将其从内存结构转换为在数据库(sqlite3)中实现的结构。 由于存储桶嵌套,我不确定如何表示架构。 这是示例数据: 在C ++结构中,我具有成员函数,这些成员函数可以执行以下操作:检索另一个存储桶下的存储桶列表,或检索存储桶路径下的
1回复

当多个进程以只读模式访问db时,SQLite C ++'数据库被锁定'

我有一个不会改变的sqlite数据库。 使用sqlite3_open_v2以SQLITE_OPEN_READONLY模式打开数据库连接的多个进程。 每个进程都是单线程的 这些连接是使用官方C / C ++接口的单一合并C源文件从MSVC项目创建的。 根据SQLite FAQ,
1回复

SQLite C ++比较同一数据库中的两个表以匹配记录

我希望能够使用C ++接口比较同一SQLite数据库中的两个表以匹配记录。 这是我的两张桌子 表名:temptrigrams 表名称:垃圾邮件 第一个表有两列和85条记录,第二个表有两列有10007条记录。 我想获取第一个表,并比较TEMPTRIGRAM列中的记录,
3回复

如何修复Qt中的“无查询无法获取行”

我有一个简单的sqlite3数据库,其中包含几个名称和ID。 如果要提供ID,我想获取名称。 如果我运行程序,会出现以下错误: 错误:“错误:”没有查询无法获取行“”“从name_table WHERE id =%1)中选择名称”“” 数据库名称是“ dataname”,数