代码之家  ›  专栏  ›  技术社区  ›  Gautam Jain

Sqlite-读取行时插入行

  •  0
  • Gautam Jain  · 技术社区  · 15 年前

    假设我在一个sqlite表中有3行。

    在阅读这三行时,我还想根据这三行中的值插入新行。

    我对这些行进行选择,并使用sqlite3_step函数获取每一行。

    如何使sqlite3_step只读3行?基本上,我只想遍历结果集,而不是新行。

    4 回复  |  直到 15 年前
        1
  •  1
  •   Luke    15 年前

    sqlite有一个函数,它将一次返回所有行;您可以使用它获取现有行,然后添加新行。我已经有一段时间没用了,所以忘了函数名。

        2
  •  1
  •   vitaut    15 年前

    我认为,可以通过启动事务来在循环之前添加行(使用sqlite3_步骤在行上迭代)并在循环之后提交此事务来实现所需的行为。

        3
  •  1
  •   Anders    15 年前

    sqlite3_last_insert_rowid(sqlite3*)
    

    如果要跟踪触发插入的行,只需在处理插入时存储它的rowid。

    这将为您提供一个有效的行处理窗口

    processThisRow = ( currentRowId > lastTriggered && currentRowId < firstInserted );
    

    .. 或者您可以使用上面建议的单独事务。

    希望这有帮助

    Rgrds 安德斯

        4
  •  1
  •   Gautam Jain    15 年前

    基本上,这就是我解决这个问题的方法。

    我通过遍历所有行来执行更新和删除。但我只在完成遍历后才插入。

    谢谢你的帮助。

    推荐文章