La spécification limit / offset pour ContentProvider requêtes
J'essaie d'obtenir mon ContentResolver pour exécuter cette requête:
select * from myTable limit 1 offset 2
La seule requête méthode dans ContentResolver est:
resolver.query(uri, projection, selection, selectionArgs, sortOrder);
J'ai essayé:
final Cursor c = resolver.query(
MyTable.CONTENT_URI,
MyTable.PROJECTION,
" ? ?",
new String[] {"1", "2"},
null);
Qui vient de lance un IllegaLArgumentException.
Quelle est la bonne façon d'atteindre cet objectif?
- connexes: stackoverflow.com/a/12476458/1523910
- connexes: stackoverflow.com/questions/9898043/...
Vous devez vous connecter pour publier un commentaire.
J'ai mis la LIMITE de la clause dans le sordOrder paramètre, j'ai aussi vu la même chose fait par d'autres, mais pas sûr si son 100% correct:
limit
?J'ai mis la limite de la clause en tant que paramètre de requête à l'aide de la syntaxe de 'limite = décalage, limite':
Il travaille au moins avec MediaStore uri. Soyez prudent de ne pas l'encodage de l' "," ou il ne fonctionnera pas.
Si vous fournissez votre fournisseur de contenu, vous pouvez utiliser
android.net.Uri.Builder#appendQueryParameter
pour fournir limit et offset comme les paramètres de la requête, que le fournisseur de contenu peut utiliser lors de la construction de la requête.lors de la construction de la requête:
noter que le
android.net.Uri.Builder#appendQueryParameter
code de la valeur afin d'empêcher l'injection sql.Références:
LIMIT <limit> OFFSET <offset>
. J'espère que c'est plus clair maintenantjava.lang.IllegalArgumentException: invalid LIMIT clauses: LIMIT 10
parce qu'elle accepte le DÉCALAGE, la LIMITE de modèle . Voir la ligne 208 et 40 dans le SQLiteQueryBuilder code source android.googlesource.com/platform/frameworks/base/+/refs/heads/... La regex pour la limite de chaîne est"\\s*\\d+\\s*(,\\s*\\d+\\s*)?"
qui ne parvient pas à égalerQuand j'ai essayé d'utiliser la limite de la Chaîne [voir la limite de la Chaîne ci-dessous] à l'aide des éléments suivants:
Cela m'a donné de bons résultats en combinaison avec les requêtes de sélection , de tri et de regroupement.