Comment vérifier si la valeur d'une colonne dans une base de données SQLite est nulle, si elle est de type Blob?Comment vérifier si BLOB est nul
Je suis un curseur comme aller chercher si:
public Cursor fetchArticle(int i) throws SQLException {
Cursor mCursor = mDatabase.query(true, "api_content",
new String[] { "_id", "ArticleName", "ArticleText","ImageLink", "Image" },
KEY_ID + "=" + i, null, null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
Comment puis-je vérifier si la valeur de la colonne d'image, index 4, est nul? Je l'ai essayé ce qui suit:
- En utilisant la méthode isNull(), qui retourne toujours faux quand, en fait, la valeur devrait certainement être nulle
- En utilisant
articleCursor.getBlob(4) == null
, oùarticleCursor
est un curseur valide (elle retourne false)
Pour compliquer davantage les choses, quand j'imprime articleCursor.getBlob(4)[0]
, il renvoie des valeurs telles que 78
ou 91
, qui ne ressemblent à rien que je considère null
.
Et encore, il est impossible que la base de données devrait avoir des données dans cette colonne; ça doit être nul. Des idées? Merci!
Que retourne une requête SQL simple sur la ligne de commande pour cette colonne/ligne? –
Avez-vous essayé Querying pour 'length (x)' au lieu de ou en complément de 'x'? Il retournera Null ssi x est nul et aucun pilote dB et/ou client Buffer ne devrait être confondu par des séquences d'octets arbitraires. – collapsar
@DaDaDom une requête simple renvoie NULL. –