Как вставить последний row_id таблицы в другую таблицу с помощью Android и SQLite - PullRequest
1 голос
/ 24 марта 2010

Я понимаю, что название может показаться странным, но цель очень ясна:

Я создаю приложение, для которого требуются две таблицы: дорожки и путевые точки.

Пользователь вводит название дорожки через текстовое поле, и таблица генерирует идентификатор под track_id.

в таблице путевых точек есть столбец с именем track_id_fk. Когда вызывается метод OnLocationChanged (), долгота и широта заносятся в таблицу вместе со временем.

Я хочу добавить track_id самой новой записи трека в таблице треков в столбец track_id_fk в таблице путевых точек.

Я использую следующий код:

SQLiteDatabase db = waypoints.getWritableDatabase();
        ContentValues waypointvalues = new ContentValues();
        waypointvalues.put(LONGITUDE, loc.getLongitude());
        waypointvalues.put(LATITUDE, loc.getLatitude());
        waypointvalues.put(TIME, System.currentTimeMillis());
        waypointvalues.put(TRACK_ID_FK, "last inserted trackid");
        db.insertOrThrow(TABLE_NAME, null, waypointvalues);

Я не уверен относительно того, какое значение должно быть там, где находится "последний вставленный trackid".

Спасибо

1 Ответ

4 голосов
/ 24 марта 2010

insertOrThrow Возвращает идентификатор строки вновь вставленной строки или -1, если произошла ошибка

    SQLiteDatabase db1 = tracks.getWritableDatabase();
    ContentValues tracksvalues = new ContentValues();
    tracksvalues.put(COL1, '1');
    tracksvalues.put(COL2, '2');
    Long insertid=db1.insertOrThrow(TABLE_NAME1, null, tracksvalues);

    if (insertid!=-1) {

        SQLiteDatabase db2 = waypoints.getWritableDatabase();
        ContentValues waypointvalues = new ContentValues();
        waypointvalues.put(LONGITUDE, loc.getLongitude());
        waypointvalues.put(LATITUDE, loc.getLatitude());
        waypointvalues.put(TIME, System.currentTimeMillis());
        waypointvalues.put(TRACK_ID_FK, insertid);
        db2.insertOrThrow(TABLE_NAME2, null, waypointvalues);

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