Lua中的SQLite布尔值

时间:2013-11-21 03:13:37

标签: sqlite lua corona

我在寻找一个优雅的解决方案时遇到了一些麻烦。我正在使用带有SQLite数据库的Corona创建一个应用程序。 db中的一列是布尔值。我知道SQLite对10使用truefalse。我也知道Lua将所有内容评估为真,而不是falsenil

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

if(myVariable == 1) 

我觉得这样就失去了在表格中设置布尔列的目的,因为我可以将myVariable与任何东西进行比较。我想写一下:

if(myVariable)

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

1 个答案:

答案 0 :(得分:2)

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

BTW,当lsqlite3使用bind方法之一存储Lua布尔值时, 注意Lua打算存储布尔值,并将值转换为整数0(false)和1(true)。

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