Я использую SQLite для хранения и извлечения данных для приложения Android. Я создал метод, который удаляет записи в таблице, удаляя их первичный ключ, который является UUID. Однако, когда я вызываю свою команду .delete, я получаю нераспознанный токен.
(Текущее мышление) База данных ожидает точного определения строки, где в качестве удаляемой записи указывается использование c.getId (), которое возвращаетUUID, а не строка. Но я не уверен, как преобразовать его или, возможно, это синтаксическая проблема в выражении.
// CheckInList.java
public class CheckInList {
private static CheckInList sCheckInList;
private Context mContext;
public SQLiteDatabase mDataBase;
...
//PROBLEM METHOD v
public void deleteCheckIn(CheckIn c) {
mDataBase.delete(DATABASE_NAME, CheckInTable.Cols.UUID + "=" + c.getId(), null);
}
...
/// CheckInBaseHelper
public class CheckInBaseHelper extends SQLiteOpenHelper {
private static final int VERSION = 1;
public static final String DATABASE_NAME = "checkinBase.db";
public CheckInBaseHelper(Context context) {
super(context, DATABASE_NAME, null, VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create TABLE " + CheckInTable.NAME + "(" +
" _id integer primary key autoincrement, " +
CheckInTable.Cols.UUID + ", " +
CheckInTable.Cols.TITLE + ", " +
CheckInTable.Cols.PLACE + ", " +
CheckInTable.Cols.DETAILS + ", " +
CheckInTable.Cols.DATE + ", " +
CheckInTable.Cols.LATITUDE + ", " +
CheckInTable.Cols.LONGITUDE +
")"
);
}
/// CheckInCursorWrapper
public class CheckInCursorWrapper extends CursorWrapper {
public CheckInCursorWrapper(Cursor cursor) {
super(cursor);
}
public CheckIn getCheckIn() {
String uuidString = getString(getColumnIndex(CheckInTable.Cols.UUID));
String title = getString(getColumnIndex(CheckInTable.Cols.TITLE));
String place = getString(getColumnIndex(CheckInTable.Cols.PLACE));
String details = getString(getColumnIndex(CheckInTable.Cols.DETAILS));
long date = getInt(getColumnIndex(CheckInTable.Cols.DATE));
Double latitude = getDouble(getColumnIndex(CheckInTable.Cols.LATITUDE));
Double longitude = getDouble(getColumnIndex(CheckInTable.Cols.LONGITUDE));
CheckIn checkin = new CheckIn(UUID.fromString(uuidString));
checkin.setTitle(title);
checkin.setPlace(place);
checkin.setDetails(details);
checkin.setDate(new Date(date));
checkin.setLatitude(latitude);
checkin.setLongitude(longitude);
return checkin;
}
}
Метод предназначен для удаления регистрации из базы данных путем идентификации каждой записи с помощью ее идентификатора.
SQLiteExceptions: unrecognized token: "7ac5"
android.database.sqlite.SQLiteException: unrecognized token: "7ac5" (code 1 SQLITE_ERROR): , while compiling: DELETE FROM checkinBase.db WHERE uuid=d21a141d-7ac5-487b-a5af-6eae0825ac37