void IDBCursorBackendImpl::updateInternal(ScriptExecutionContext*, PassRefPtr<IDBCursorBackendImpl> cursor, PassRefPtr<SerializedScriptValue> prpValue, PassRefPtr<IDBCallbacks> callbacks) { // FIXME: This method doesn't update indexes. It's dangerous to call in its current state. callbacks->onError(IDBDatabaseError::create(IDBDatabaseException::UNKNOWN_ERR, "Not implemented.")); return; RefPtr<SerializedScriptValue> value = prpValue; if (!cursor->m_query || cursor->m_currentId == InvalidId) { // FIXME: Use the proper error code when it's specced. callbacks->onError(IDBDatabaseError::create(IDBDatabaseException::UNKNOWN_ERR, "Operation not possible.")); return; } String sql = "UPDATE ObjectStoreData SET value = ? WHERE id = ?"; SQLiteStatement updateQuery(cursor->database(), sql); bool ok = updateQuery.prepare() == SQLResultOk; ASSERT_UNUSED(ok, ok); // FIXME: Better error handling. updateQuery.bindText(1, value->toWireString()); updateQuery.bindInt64(2, cursor->m_currentId); ok = updateQuery.step() == SQLResultDone; ASSERT_UNUSED(ok, ok); // FIXME: Better error handling. if (cursor->m_isSerializedScriptValueCursor) cursor->m_currentSerializedScriptValue = value.release(); callbacks->onSuccess(); }
void IDBCursorBackendImpl::removeInternal(ScriptExecutionContext*, PassRefPtr<IDBCursorBackendImpl> cursor, PassRefPtr<IDBCallbacks> callbacks) { // FIXME: This method doesn't update indexes. It's dangerous to call in its current state. callbacks->onError(IDBDatabaseError::create(IDBDatabaseException::UNKNOWN_ERR, "Not implemented.")); return; if (!cursor->m_query || cursor->m_currentId == InvalidId) { // FIXME: Use the proper error code when it's specced. callbacks->onError(IDBDatabaseError::create(IDBDatabaseException::UNKNOWN_ERR, "Operation not possible.")); return; } String sql = "DELETE FROM ObjectStoreData WHERE id = ?"; SQLiteStatement deleteQuery(cursor->database(), sql); bool ok = deleteQuery.prepare() == SQLResultOk; ASSERT_UNUSED(ok, ok); // FIXME: Better error handling. deleteQuery.bindInt64(1, cursor->m_currentId); ok = deleteQuery.step() == SQLResultDone; ASSERT_UNUSED(ok, ok); // FIXME: Better error handling. cursor->m_currentId = InvalidId; cursor->m_currentSerializedScriptValue = 0; cursor->m_currentIDBKeyValue = 0; callbacks->onSuccess(); }
Database::DatabaseTransactionTask::DatabaseTransactionTask(PassRefPtr<SQLTransaction> transaction) : DatabaseTask(transaction->database(), 0) , m_transaction(transaction) { }
DatabaseBackend::DatabaseTransactionTask::DatabaseTransactionTask(PassRefPtr<SQLTransactionBackend> transaction) : DatabaseTask(Database::from(transaction->database()), 0) , m_transaction(transaction) { }