исключение cursor.getType () и CursorIndexOutOfBoundsException - PullRequest
4 голосов
/ 15 ноября 2011

Есть вещь, которую я не могу понять о Cursor.getType(), может кто-нибудь объяснить, почему я получаю это глупое исключение, когда я хочу получить тип столбцов, если курсор не имеет записи, но есть столбцы? Я имею в виду, что если у курсора есть запись, проблем нет, я могу использовать метод getType, чтобы без проблем получить тип столбцов, но если нет записей, он выдает это исключение. Вопрос в том, зачем мне нужны записи, чтобы получить тип столбцов? Почему просто знать имя столбца недостаточно, чтобы получить его типы? Это смешно?

1 Ответ

9 голосов
/ 15 ноября 2011

Это потому, что SQLite использует динамическую типизацию:

Большинство механизмов баз данных SQL (каждый механизм баз данных SQL, кроме Насколько нам известно, SQLite использует статическую жесткую типизацию. Со статическим набирая, тип данных значения определяется его контейнером - определенный столбец, в котором хранится значение.

SQLite использует более общую динамическую систему типов. В SQLite тип данных значения связан с самим значением, а не с его контейнер.

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

Так что нет значения, нет типа данных.

...