cursor.getType()和CursorIndexOutOfBoundsException异常

时间:2011-11-15 09:01:45

标签: android sqlite cursor gettype

有一件事我无法理解Cursor.getType(),有人可以解释为什么当我想要获取列类型时我会得到这个愚蠢的异常,如果游标没有记录但是有列?我的意思是,如果游标有记录没有问题,我可以使用getType方法获取列类型而没有任何问题,但如果没有任何记录,它会抛出此异常。问题是为什么我必须需要记录才能获得列类型?为什么只知道列名称不足以获得它的类型?这太荒谬了吗?

1 个答案:

答案 0 :(得分:9)

这是因为SQLite使用动态类型:

  

大多数SQL数据库引擎(除了以外的每个SQL数据库引擎)   据我们所知,SQLite使用静态,严格的类型。随着静态   输入时,值的数据类型由其容器确定 -   存储值的特定列。

     

SQLite使用更通用的动态类型系统。在SQLite中   值的数据类型与值本身相关联,而不是与其相关联   容器

http://www.sqlite.org/datatype3.html

所以没有价值,没有数据类型。