Mam aplikację na Androida, która musi sprawdzić, czy istnieje już rekord w bazie danych, a jeśli nie, przetworzyć niektóre rzeczy i ostatecznie je wstawić i po prostu odczytać dane z bazy danych, jeśli dane istnieją. Używam podklasy SQLiteOpenHelper do tworzenia i uzyskiwania instancji SQLiteDatabase z możliwością wielokrotnego zapisu, która według mnie automatycznie zajęła się utworzeniem tabeli, jeśli jeszcze nie istnieje (ponieważ kod do tego znajduje się w onCreate (... ) metoda).
Jednak gdy tabela jeszcze NIE istnieje, a pierwsza metoda uruchomiona na obiekcie SQLiteDatabase, którą mam, to wywołanie zapytania (...), mój logcat pokazuje błąd „I / Database (26434): sqlite zwrócił: błąd code = 1, msg = no such table: appdata "i oczywiście, tabela appdata nie jest tworzona.
Jakieś pomysły, dlaczego?
Szukam jednej z metod, aby sprawdzić, czy tabela istnieje (ponieważ jeśli nie, to danych na pewno nie ma w niej) i nie muszę jej czytać, dopóki do niej nie napiszę, co wydaje się tworzyć tabelę poprawnie) lub sposób, aby upewnić się, że zostanie utworzony i jest po prostu pusty, na czas pierwszego wywołania zapytania (...)
EDYCJA
Zostało to wysłane po dwóch odpowiedziach poniżej:
Myślę, że mogłem znaleźć problem. Z jakiegoś powodu zdecydowałem, że dla każdej tabeli powinien zostać utworzony inny SQLiteOpenHelper, mimo że oba mają dostęp do tego samego pliku bazy danych. Myślę, że refaktoryzacja tego kodu, aby używał tylko jednego OpenHelpera i tworzenie obu tabel w jego onCreate może działać lepiej ...