получение идентификатора вставки из хранилища базы данных Webkit HTML5 - PullRequest
8 голосов
/ 21 марта 2009

Webkit (по крайней мере на iPhone и Safari) поддерживает хранение базы данных HTML5 через SQLite.

Я пытаюсь выяснить, как лучше получить идентификатор вставки (в базе данных есть автоинкрементное поле 'id') для следующей транзакции.

db.transaction(function(tx) {
  tx.executeSql("INSERT INTO teams (name) VALUES (?)", [$('#team_name').val()]);
});

Ответы [ 2 ]

16 голосов
/ 31 марта 2009

Пример кода ниже взят из документации Apple, я знаю, что он работает на iPhone и Safari, и, вероятно, WebKit. Вы можете получить идентификатор вставки из объекта ответа resultSet, используя resultSet.insertId Кроме того, вы можете получить количество затронутых строк, например, для запроса на обновление, используя свойство rowAffered объекта resultSet.

db.transaction(
function (transaction) {
    transaction.executeSql('INSERT into tbl_a (name) VALUES ( ? );',
        [ document.getElementById('nameElt').innerHTML ],
        function (transaction, resultSet) {
            if (!resultSet.rowsAffected) {
                // Previous insert failed. Bail.
                alert('No rows affected!');
                return false;
            }
            alert('insert ID was '+resultSet.insertId);
            transaction.executeSql('INSERT into tbl_b (name_id, color) VALUES (?, ?);',
                [ resultSet.insertId,
                  document.getElementById('colorElt').innerHTML ],
                nullDataHandler, errorHandler);
        }, errorHandler);
}, transactionErrorCallback, proveIt);

Документация Apple по базе данных HTML5

0 голосов
/ 22 марта 2009

Как-то так должно работать:

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