sql >> Database >  >> RDS >> SQLite

selectionArgs in SQLiteQueryBuilder werkt niet met gehele waarden in kolommen

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.



  1. Krijg een lijst met ondersteunde tijdzones in SQL Server (T-SQL)

  2. Onjuiste syntaxis in de buurt van het trefwoord 'met'...vorige instructie moet worden afgesloten met een puntkomma

  3. 9 vitale taken waarvoor DBA's verantwoordelijk zijn

  4. Hoe de veldwaarde te bepalen die niet kan worden geconverteerd naar (decimaal, zwevend, int) in SQL Server