【发布时间】:2010-12-24 10:48:29
【问题描述】:
我认为这应该是一个简单的问题,但我在其他地方没有发现这个问题的答案令人惊讶,所以我在这里发布。
我继承了一个 Sqlite 驱动的数据库,其中包含布尔列,声明如下:
CREATE TABLE example (
ex_col BOOLEAN NOT NULL DEFAULT 0,
);
这个表正试图通过 sqlite3 C API 调用sqlite_column_* 函数来访问,现在鉴于 sqlite 实际上不支持布尔类型,这里的预期行为是什么?
看来sqlite_column_int() 总是返回 0 或 false,我认为这是因为 sqlite 中的所有列实际上都是文本列...
维护这一点的正确方法是什么 - 作为文本获取,然后将字符串与 true 进行比较?我真的不想修改数据库和附加到它的所有其他代码。
【问题讨论】: