gpt4 book ai didi

带有 bool 值的sqlite?

转载 作者:行者123 更新时间:2023-12-03 17:27:02 45 4
gpt4 key购买 nike

我正在从服务器获取一些文本和 bool 值,我需要将它们保存在数据库中。

这是我的 table 。我将 bool 值定义为 INTEGER 因为在 sqlite 中没有 bool 值。

db.execSQL("CREATE TABLE outcomesStore(id INTEGER PRIMARY KEY AUTOINCREMENT , allowgo INTEGER,cod TEXT,youdidComments INTEGER, youwent INTEGER,ByDate INTEGER ," +
"OnCompletion INTEGER,yourtext TEXT , yourGroup TEXT, yourConsultation INTEGER )");

我正在从服务器获取这些值。

Store[] Storedata = Configuration.getStore();


booleanvalues[0] = Store[0].isallowgo ();

然后像这样插入

 helperdatabase = new DatabaseHelperInurseBusiness(this);
db = helperdatabase.getWritableDatabase();

ContentValues insertOutcomes = new ContentValues();


insertOutcomes.put(helperdatabase.ALLOW_GO,booleanvalues[0]);
db.insert("outcomesStore", helperdatabase.ALLOW_GO,insertOutcomes);

即使没有给出任何错误也无法正常工作。

最佳答案

实际上,SQLite 确实支持 BOOLEAN 类型,但可能并不完全符合您的预期。

您可以使用标准 CREATE TABLE 创建 BOOLEAN 类型的列,然后填充它:

CREATE TABLE mytable (name VARCHAR(10), flag BOOLEAN);
INSERT INTO mytable (name, flag) VALUES ('Alice', 0);
INSERT INTO mytable (name, flag) VALUES ('Bob', 1);

然后您可以取回您的数据,并在这样做时使用标准的 BOOLEAN 逻辑:

SELECT * FROM mytable WHERE flag

或使用不同的 BOOLEAN 表达式:

SELECT * FROM mytable WHERE NOT flag

等等。 ( Obligatory SQLFiddle )

换句话说,一切都很好,唯一的问题是你必须使用 0 而不是 FALSE1 而不是 TRUE(这包括尝试从客户端软件设置值)。请注意,这与其他 SQL 引擎有些相似(例如,PostgreSQL 支持使用 '0'/'1''f'/''false/true 用于客户端设置 FALSE/TRUE 值软件)。

此外,如果您要在数字上下文中使用此 BOOLEAN 字段(例如加法或乘法),它将表现为数字 0 或 1,而在其他 SQL 引擎中添加 BOOLEANINTEGER 可能会因为类型不兼容而导致异常。

关于带有 bool 值的sqlite?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14472133/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com