SQLite
 sql >> Baza danych >  >> RDS >> SQLite

selectionArgs w SQLiteQueryBuilder nie działa z wartościami całkowitymi w kolumnach

To, że parametry zapytania mogą być tylko ciągami, jest strasznym błędem projektowym w interfejsie API bazy danych Androida.

Pomimo tego, co mówi dokumentacja, powinieneś używać parametrów tylko dla rzeczywistych wartości ciągów; wartości całkowite można bezpiecznie osadzać bezpośrednio w ciągu SQL. (W przypadku obiektów blob musisz użyć funkcji, która akceptuje ContentValues .)

Należy pamiętać, że chociaż SQLite używa dynamicznego typowania, wartości różnych typów nie porównaj równe w większości przypadków (SELECT 42='42'; zwraca 0 ).Istnieją przypadki, w których SQLite tak automatycznie konwertować wartości ze względu na powinowactwo typów (w Twoim przypadku miałoby to miejsce, gdy zadeklarowałeś id kolumna jako INTEGER ), ale jest to raczej sprzeczne z intuicją, więc nie należy na nim polegać.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie masz blokady bazy danych! w Androidzie

  2. Formatuj liczby z przecinkiem w SQLite

  3. Wyświetlaj dane z bazy danych za pomocą adaptera bazowego i widoku listy

  4. SQLite JSON_ARRAY_LENGTH()

  5. android.database.sqlite.SQLiteException:blisko s:błąd składni (kod 1):,