At forespørgselsparametre kun kan være strenge er en frygtelig designfejl i Android-database-API'en.
På trods af hvad dokumentationen siger, bør du kun bruge parametre til faktiske strengværdier; heltalsværdier kan sikkert indlejres direkte i SQL-strengen. (For blobs skal du bruge en funktion, der accepterer ContentValues
.)
Bemærk venligst, at selvom SQLite bruger dynamisk indtastning, gør værdier af forskellige typer det ikke sammenligne lig i de fleste tilfælde (SELECT 42='42';
returnerer 0
).Der er nogle tilfælde, hvor SQLite gør automatisk konverter værdier på grund af type affinitet (i dit tilfælde ville dette ske, hvis du erklærede id
kolonne som INTEGER
), men dette er ret kontraintuitivt, så det bør ikke stoles på.