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

Nie można zaktualizować wiersza w Sqlite w systemie Android, ale nie zgłasza żadnego błędu

1). Sprawdź swój Logcat że nie masz żadnych błędów.

2). Włącz rejestrowanie, aby zobaczyć wszystkie instrukcje SQL, które wykonujesz:

https://gist.github.com/davetrux/9741432

adb shell setprop log.tag.SQLiteLog V
adb shell setprop log.tag.SQLiteStatements V
adb shell stop
adb shell start

Lub przeczytaj to:https://stackoverflow.com/a/19152852/1796309
Lub to:https://stackoverflow.com/a/6057886/1796309

W każdym razie musisz sprawdzić, czy wykonujesz poprawne zapytanie SQL.

3). Jeśli zapytanie jest prawidłowe, ale nadal nie możesz zaktualizować wiersza, musisz to zrobić:

3.1) Przejdź do <android-sdk-dir>/platform-tools

3.2). Upewnij się, że Twoja aktualna kompilacja to Debug (nie Release lub otrzymasz komunikat adbd cannot run as root in production builds ).

Chodzi mi o to, że powinieneś uruchomić aplikację za pomocą tego przycisku:

I uruchom kolejne polecenia:

./adb root
./adb shell
run-as com.mycompany.app    //<----------- your applicationId from build.gradle
ls -l
drwxrwx--x u0_a88   u0_a88            2016-01-25 15:44 cache
drwx------ u0_a88   u0_a88            2016-01-25 15:25 code_cache
drwxrwx--x u0_a88   u0_a88            2016-01-25 15:44 databases    //<----
drwxrwx--x u0_a88   u0_a88            2016-01-25 15:26 files

cd databases/
ls -l
-rw-rw---- u0_a88   u0_a88     172032 2016-01-25 15:45 <your-app>.db
-rw------- u0_a88   u0_a88      33344 2016-01-25 15:45 <your-app>.db-journal

chmod 777 -R <your-app>.db
exit
exit
./adb pull /data/data/<your applicationId from build.gradle>/databases/<your-app>.db ~/projects/

Następnie będziesz mieć kopię swojej bazy danych SQLite w ~/projects/ katalog.

Otwórz go za pomocą, na przykład tego:http://sqlitebrowser.org/

Spróbuj wykonać zapytanie aktualizacyjne, które możesz uzyskać z Logcat .
Zobaczysz wszystkie błędy SQL i będziesz mógł je bardzo szybko naprawić.

Powodzenia!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najlepsze praktyki dotyczące luźnego łączenia danych i interfejsu użytkownika w systemie Android — Adapter, Filter, CursorLoader i ContentProvider

  2. Jak iif() działa w SQLite

  3. Znajdź naruszenia kluczy obcych w SQLite

  4. Dane SQLite do RecyclerView

  5. Nie można wstawić rekordu do bazy danych SQLite z usługi Firebase Message Service, gdy aplikacja jest w tle lub w stanie zamkniętym