cursor.getType()和CursorIndexOutOfBoundsException异常

Mus*_*ven 4 sqlite android cursor gettype

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

Can*_*ner 9

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

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

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

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

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