2011-03-15 3 views
6

J'ai une table contenant une colonne BLOB (elle ne fait que 16 octets). Je veux exécuter une requête du formulaire SELECT * FROM myTable WHERE blobColumn = ? et lier un tableau d'octets à cette colonne. Idéalement, je serais en mesure de dire myDatabase.rawQuery("SELECT * FROM myTable WHERE blobColumn = ?", myByteArray) ou une variante de celle-ci, mais la fonction rawQuery ne supporte que les arguments String - bien qu'en regardant par les sources Android, il semble que les méthodes privées incluent bindBlob(int, byte[]).Android SQLite - selectionArgs autres que les chaînes

Je peux, bien sûr, exécuter la requête SELECT * FROM myTable WHERE blobColumn = x'CAFE1234CAFE1234CAFE1234CAFE1234', mais y a-t-il un moyen de le faire qui ne nécessite pas de convertir le blob en chaîne?

Répondre

0

Essayez ceci comme argument à votre attention? requête:

new String [] {String.valueOf (mByteArray)}

+0

Cela ne fonctionne pas – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

0

Je ne crois pas que vous pouvez comparer le contenu d'un champ Blob sans d'abord convertir. Pourriez-vous créer une colonne supplémentaire et la charger avec un type de clé qui pourrait être unique et descriptif de ses données Blob associées?

Questions connexes