Witam,
mam taki problem: mam aplikację na androidzie która na bieżąco zakłada i robi update w tabelach w bazie SQLite.
Dodatkowa funkcja aplikacji to aktualizacja rekordów w tle. Co 30 sekund wywoływany jest nowy wątek, który aktualizuje pewne tebele.
Jest np. tabela test (_id int autoincrement unique, opis text, int id_Obce)
W tym wątku sprawdzam pole id_obce czy istnieje jeżeli nie to dodaję rekord, jeżeli tak to robię update.
Problem jest w tym, że pojawiają się dublety w stylu:
4,"opis7",111,
5,"opis1",129
6,"opis1",129
7,"opis1",130
jak sprawdzam ?
public boolean sprawdzCzyJestZam(long id) {
boolean wynik = false;
String rawQuery = "select count(*) from z where id_obce=" + String.valueOf(id);
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(rawQuery, null);
if (cursor.getCount() == 0) {
wynik = false;
} else {
cursor.moveToNext();
int ile = cursor.getInt(0);
if (ile==1) {
wynik = true;
} else {
wynik = false;
}
}
cursor.close();
return wynik;
}
Korzystam (przy aktualizacji w tle) z połączenia do bazy tego głównego aplikacji. Macie może jakieś pomysły ?