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

Kiedy powinienem zamknąć kursor i db?

Czy powinienem zamknąć kursor po każdym użyciu, czy pozostawić go otwartym, dopóki widok nie zostanie zniszczony?

Zależy. Jeśli wynik kursora nie zmieni się w międzyczasie (np. zdalne połączenie modyfikujące DB), to jest OK. Nie zapomnij użyć CursorLoader aby Android automatycznie zarządzał kursorem (np. zamknij kursor w przypadku awarii aplikacji).

I to samo w przypadku bazy danych, czy można ją otworzyć po utworzeniu działania, w którym znajduje się ten widok, i zamknąć, gdy działanie zostanie zniszczone?

Tak, możesz otworzyć w onResume() i zamknij w onPause() wywołania zwrotne, lub gdy wiesz, że Twoja baza danych nie będzie już odpytywana.

Ciągle otrzymuję błąd „close() nigdy nie był jawnie wywoływany w bazie danych...”, kiedy robię to, co opisano powyżej.

Jest to normalne tylko w przypadku awarii aplikacji. Nie powinno się to zdarzyć, jeśli robisz to tak, jak powiedziałem powyżej.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przenieść pole ForeignCollection do kursora w Ormlite?

  2. Jak używać wyrażenia regularnego w sqlite

  3. Problem z zapytaniem wstawiania w Sqlite? (Wstaw zmienną)

  4. W przypadku metody aktualizacji nie jest wywoływana w Androidzie sqlite

  5. SQLite ALTER TABELA