我的数据库表中有一个INTEGER列,并已将 的值保存1476355625598到其中(通过更新现有行)。
当我立即通过查询检查该值时,我得到了相同的、正确的1476355625598返回值。
但是,当我的 IntentService 稍后检索该值时,它正在获取返回的值-1113124226。
我已经检查过,-1113124226其值与您调用的值相同(int)1476355625598。
我已将调试输出添加到修改此列的所有代码行中,并且可以确认没有其他数据库操作正在更新该值。
所以似乎有什么东西正在将我的长期转变为整数......有什么想法如何/为什么会发生这种情况吗?
注意 - 我保存的值是时间戳(毫秒格式),这比将其保存为字符串格式更好。
更新
由于我的数据库可通过内容提供程序访问,因此我已将内容观察器添加到 MyApplication 类中。它不报告相关表的任何其他更新。
更新#2
问题现已解决。看评论...
在我有时间写这篇文章之前,OP 发现了他的错误,但我仍然会发布它来关闭它。如果OP愿意的话,他可以添加自己的(没有难受的感觉;))(这将防止其他人稍后发送垃圾邮件以获得一些代表点......)
例外的是,问题来自于从游标中检索值。即使该值存储为 INTEGER,该列也可以long在游标上保存 so,我们需要使用getLong(int)orgetLong(String)方法获取该值。如果不是,JAVA 将截断该值作为例外。
在问题中,吸气剂不存在,但OP帖子和答案在另一个帖子上: https: //stackoverflow.com/a/40008872/1617737
这显示了他如何复制光标。这是他用来getInt代替getLongNUMERIC SqliteType 的。
| 归档时间: |
|
| 查看次数: |
1119 次 |
| 最近记录: |