Expo выставил динамический запрос в базу данных sqlite - PullRequest
0 голосов
/ 21 сентября 2019

В экспозиции я могу выполнить запрос к базе данных следующим образом:

      db.transaction(tx => {
        tx.executeSql(
          'UPDATE mytable SET eight = (?) WHERE value_id = (?)', ['off', this.state.narrative.values]
        )
      },
    (err) => console.error(err),
    () => this.setState({ isSelected: false })
  );

Это работает, и для таблицы "mytable", столбца "восьмерка" устанавливается значение "off".Моя задача, я хотел бы сделать что-то вроде этого:

let dynamicColumn = 'eight';
'UPDATE mytable SET dynamicColumn = (?) WHERE value_id = (?)'

Я пробовал следующее:

'UPDATE mytable SET (?) = (?) WHERE value_id = (?)', [dynamicColumn, 'off', this.state.narrative.values]

Также некоторые конкатенации: 'UPDATE mytable SET' + dynamicColumn +'= (?) WHERE value_id = (?)', ['Off', this.state.narrative.values]

Обновленная попытка:

  let dynamicColumn = 'eight';
  db.transaction(tx => {
    tx.executeSql(
      'UPDATE dr_report_narrative SET ${dynamicColumn} = (?) WHERE value_id = (?)', ['off', this.state.narrative.values]
    )
  }

1 Ответ

1 голос
/ 21 сентября 2019

Может использовать шаблон литералов шаблона, а также проверять, если у вас есть правильное объявление области динамического столбца со значением:

let dynamicColumn = 'eight';
let sql  =  `UPDATE mytable SET ${dynamicColumn} = (?) WHERE value_id = (?)`;

Обновлено:

 let dynamicColumn = 'eight';
  db.transaction(tx => {
    tx.executeSql(
      `UPDATE dr_report_narrative SET ${dynamicColumn} = (?) WHERE value_id = (?)`, ['off', this.state.narrative.values]
    )
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...