Операция должна использовать обновляемый запрос. (Ошибка 3073) Microsoft Access

Так как вы используете react-navigation, тогда вы устанавливаете функцию в компоненте заголовка.

  1. Вы должны определить функцию в своем классе
  2. В вашем componentDidMount установить функцию в качестве параметра, используя setParam
  3. Использовать getParam в заголовке навигации. .

Вот так это будет выглядеть в очень простом компоненте.

export default class Screen1 extends React.Component {

  static navigationOptions = ({ navigation }) => {
    const { params } = navigation.state; // this is included because you had added it and you may require the params in your component
    return {
      headerTitle: , // grab the function using getParam
    };
  };

  handleDelete = () => {
    alert('delete')
  }

  // set the function as a param in your componentDidMount
  componentDidMount() {
    this.props.navigation.setParams({ handleDelete: this.handleDelete });
  }


  render() {
    return (
      
        Screen1
      
    )
  }
}

Тогда в вашем компоненте PostTitle вы можете использовать функцию, которую вы только что передали, вызвав this.props.handleDelete

Вот закуска, которая показывает основные функции https: // snack .expo.io / @ andypandy / functions-in-a-navigation-header

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

21
задан Sklivvz 4 October 2008 в 21:46
поделиться

4 ответа

Начиная со Струйных 4 все запросы, которые имеют соединение к SQL-оператору, который суммирует данные, будут необновляемы. Вы не используете СОЕДИНЕНИЕ, но оператор Where точно эквивалентен соединению, и таким образом, Струйный оптимизатор запросов рассматривает его тот же способ, которым он рассматривает соединение.

я боюсь, что Вы являетесь неудачливыми без временной таблицы, хотя, возможно, кто-то с большим Струйным знанием SQL, чем я могу придумать обходное решение.

BTW, это, возможно, было обновляемо в Струйных 3.5 (Доступ 97), в целом партия запросов была обновляема тогда, это стало необновляемым, когда обновлено для Впрыскивания 4.

-

23
ответ дан 29 November 2019 в 20:03
поделиться

В сущности, в то время как Ваш SQL выглядит совершенно разумным, Струя никогда не поддерживала синтаксис стандарта SQL для UPDATE. Вместо этого это использует свой собственный синтаксис (отличающийся снова от SQL Server, собственного UPDATE синтаксис), который является очень ограничен. Часто, единственные обходные решения "Операция должны использовать обновляемый запрос", являются очень болезненными. Серьезно рассмотрите переключение на более способный продукт SQL.

еще Для некоторых деталей о Ваших определенных проблемах и некоторых возможных обходных решений, см. Запрос на обновление На основе Общих Сбоев Запроса .

0
ответ дан 29 November 2019 в 20:03
поделиться

Я продолжал получать ту же ошибку, пока я не сделал соединяющееся поле уникальным индексом в обеих соединяющихся таблицах. Только тогда сделал запрос, становятся обновляемыми.

Philip Stilianos

0
ответ дан 29 November 2019 в 20:03
поделиться

Проблема определенно касается использования (в этом случае) макс. () функция. Любая функция агрегирования, используемая во время соединения (например, получить макс. или минута или в среднем оценить от объединяемой таблицы), вызовет ошибку. И то же относится к использованию подзапросов вместо соединений (как в исходном коде).

Это является невероятно раздражающим (и невыровненным!), поскольку это - довольно общая вещь хотеть сделать. Я должен был также использовать временные таблицы для двигений, это (вытяните агрегированное значение во временную таблицу с оператором вставки, затем соедините с этой таблицей с обновлением, затем отбросьте временную таблицу).

Glenn

4
ответ дан 29 November 2019 в 20:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: