【问题标题】:SQLite boolean values in LuaLua 中的 SQLite 布尔值
【发布时间】:2013-11-21 03:13:37
【问题描述】:

我很难找到一个优雅的解决方案。我正在使用具有 SQLite 数据库的 Corona 创建一个应用程序。 db 中的一列是布尔值。我知道 SQLite 使用10 表示truefalse。我也知道 Lua 将所有不是 falsenil 的东西评估为真。

有没有办法在 Lua 中直接将 SQLite 布尔值评估为真或假,而不必这样做:

if(myVariable == 1) 

我觉得这违背了在表中使用布尔列的目的,因为我可以将 myVariable 与任何东西进行比较。我只想能够写:

if(myVariable)

有没有办法做到这一点?现在我认为我唯一的选择是将 1 存储为 true 并将 false 保留为 null 在数据库中。

【问题讨论】:

    标签: sqlite lua coronasdk


    【解决方案1】:

    SQLite 没有单独的布尔存储类。因此,当 Lua 从数据库中读取列时,它无法确定该值是布尔值而不是数字。

    顺便说一句,当 lsqlite3 使用 bind 方法之一存储 Lua 布尔值时,它确实注意到 Lua 打算存储布尔值,并将值转换为整数 0 (@987654323 @) 和 1 (true)。

    由于您使用 Lua 进行编程,因此您必须接受这样一个事实:Lua 将数字视为数字,而不是布尔值。我的建议是在从数据库中读取数字后立即在 Lua 中将它们转换为布尔值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-30
      • 2011-11-11
      • 2010-10-25
      • 1970-01-01
      • 2010-10-24
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      相关资源
      最近更新 更多