Dat queryparameters alleen strings kunnen zijn, is een vreselijke ontwerpfout in de Android-database-API.
Ondanks wat de documentatie zegt, moet u parameters alleen gebruiken voor werkelijke tekenreekswaarden; integer-waarden kunnen veilig rechtstreeks in de SQL-tekenreeks worden ingesloten. (Voor blobs moet u een functie gebruiken die ContentValues
accepteert) .)
Houd er rekening mee dat hoewel SQLite dynamisch typen gebruikt, waarden van verschillende typen dat niet . doen vergelijk in de meeste gevallen gelijk (SELECT 42='42';
retourneert 0
).Er zijn enkele gevallen waarin SQLite doet automatisch waarden converteren vanwege typeaffiniteit (in uw geval zou dit gebeuren als u de id
kolom als INTEGER
), maar dit is nogal contra-intuïtief, dus er moet niet op worden vertrouwd.