代码之家  ›  专栏  ›  技术社区  ›  Trevor Balcom

一些参数化查询的SQLite问题

  •  0
  • Trevor Balcom  · 技术社区  · 14 年前

    SELECT * FROM Table WHERE row=? SELECT * FROM Table WHERE row='row' 然后返回正确的行数。

    有人知道为什么吗 sqlite3_step 当使用参数化查询与以传统的非参数化方式使用同一查询时,是否只返回1行?

    我使用一个非常薄的C++包装器围绕SqLITE3。我怀疑包装器可能有问题,但这个问题只存在于少数几个表上。这让我怀疑这些桌子的设置方式是否有问题。任何建议都将不胜感激。

    编辑:

    我正在使用查询:

    选择*FROM RefNums WHERE TripNumber=?使用sqlite3绑定文本。在第一次调用sqlite3\u步骤时返回SQLITE\u行,在第二次调用sqlite3\u步骤时返回SQLITE\u DONE。应该有两排。我已经使用SQLDataBrowser验证了行是否存在。 如果我将查询更改为选择*FROM RefNumbers WHERE TripNumber='012345';然后它就按预期工作了。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Trevor Balcom    14 年前

    CT2A 在将变量通过 sqlite3_bind_xxx 功能。这似乎是问题的根源,因为如果我硬编码查询而不是使用参数化查询,同一个程序可以正常工作。

    sqlite3_bind_text