Удалить аномалию удаления? - PullRequest
1 голос
/ 22 июня 2011

Я разрабатываю приложение, в котором я создаю базу данных, я создаю свою базу данных с помощью учебника http://www.anotherandroidblog.com/2010/08/04/android-database-tutorial/, код работает нормально, но проблема в том, что когда я удаляю элемент из определенного идентификатора, онпросто удаляет строку и этот идентификатор пропадает.Как я могу избежать потери этого идентификатора

Код приведен ниже:

private class CustomSQLiteOpenHelper extends SQLiteOpenHelper

{
    public CustomSQLiteOpenHelper(Context context)
    {
        super(context, DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db)
    {
        // This string is used to create the database.  It should
        // be changed to suit your needs.
        String newTableQueryString = "create table " +
                                    TABLE_NAME +
                                    " (" +
                                    TABLE_ROW_ID + " integer primary key autoincrement not null," +
                                    TABLE_ROW_ONE + " text," +
                                    TABLE_ROW_TWO + " text" +
                                    ");";
        // execute the query string to the database.
        db.execSQL(newTableQueryString);
    }

и для удаления

public void deleteRow(long rowID)
{
    // ask the database manager to delete the row of given id
    try {db.delete(TABLE_NAME, TABLE_ROW_ID + "=" + rowID, null);}
    catch (Exception e)
    {
        Log.e("DB ERROR", e.toString());
        e.printStackTrace();
    }

1 Ответ

2 голосов
/ 22 июня 2011

Если вы хотите отслеживать все ID s, которые были выделены в какой-то момент, вы не можете удалить соответствующие строки в своей «основной» таблице.

Вы можете использовать дополнительное состояниестолбец (int или boolean) для хранения информации о том, активна эта запись или нет.

Когда вы создаете новый элемент, установите для него состояние «активный».При удалении не удаляйте строку, а обновляйте столбец состояния как «неактивный».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...