2011-01-13 1 views
1

Je vois que AbstractWindowedCursor a des méthodes pour vérifier le type d'une colonne. C'est une grande commodité! Mais quand je regarde la classe CursorWindow, je vois que la documentation isBlob() dit:Dans Android, AbstractWindowedCursor.isBlob() est-il garanti?

Vérifie si un champ contient soit un blob ou est nulle.

Alors, est-ce que cela signifie que si je lance cette vérification, disons, une colonne de chaîne qui contient une valeur NULL, le retourne true? Si c'est le cas, cela signifie que je ne peux pas me fier à cette méthode comme vérification de type garantie.

Répondre

1

Vérifie si un champ contient un blob ou est nul. Donc, cela signifie-t-il que si j'exécute cette vérification, disons, une colonne String contenant une valeur NULL, cela retournera-t-il vrai?

Je ne l'ai pas essayé moi-même mais je soupçonne que la réponse est 'oui' (que ce soit ou qu'il y a une faute de frappe dans les documents). Cependant, si vous exécutez isNull() en premier et que vous renvoyez 'true', vous savez qu'il n'est pas possible de dire quel est le type 'column' (les méthodes isXxxx vérifient le type de données le 'champ' ne contient pas le type 'colonne'). Mais si vous exécutez isNull() en premier et que vous renvoyez 'false' alors lancez isBlob(), si elle retourne true, le champ contient un objet blob.

+0

Aujourd'hui, j'ai appris que SQLite est [typé dynamiquement] (http://www.sqlite.org/datatype3.html), ce qui signifie que chaque champ peut avoir son propre type et n'est pas nécessairement le type de la colonne. À la lumière de cela, je parie que vous avez raison. Accepter cela comme la réponse. –

+0

@Neil Traft: Oui, les concepteurs de SQLite ont adopté une approche différente du reste du monde lorsqu'ils l'ont créée. Non conventionnel mais ça marche. Merci de l'acceptation. – Squonk

Questions connexes