Узел, Sqlite { stmt: Оператор { stmt: undefined }, lastID: 0, изменения: 1 }

#javascript #node.js #sqlite

#javascript #node.js #sqlite

Вопрос:

Я работаю с node и пакетами npm sqlite3 и sqlite.

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

 async function update_json_obj_into_table_by_PropertyId(db,tablename, obj, PropertyId) {

    const x = await db.run("UPDATE 'myData' SET StateCode = ? WHERE PropertyId = ? " ,obj.StateCode,PropertyId);
    console.log(x)
}
 

Я называю это с помощью:

 const sqlite3 = require('sqlite3').verbose();
const sqlite = require('sqlite')

async function openDb() {

  const db = await sqlite.open({filename: './test.db',driver: sqlite3.Database})
  db.on("trace", (data) => { console.log(data); });
  console.log('connected!')
  return db;
}
 

за которым следует:

         if (StateCodeTable amp;amp; StateCodeTable[0].type) {
            let json = { StateCode:StateCodeTable[0].type}
            const x =await update_json_obj_into_table_by_PropertyId(db,'myData', json, myR);
            console.log('inserted');
        } else {
            console.log('No insert');
        }
 

и я вижу в консоли:

 { stmt: Statement { stmt: undefined }, lastID: 0, changes: 1 }
inserted
 

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

Редактировать,

Я добавил:

 db.on("trace", (data) => { console.log(data); });
 

Теперь в консоли:

ОБНОВИТЬ ‘myData’ УСТАНОВИТЬ StateCode = ‘C1’, ГДЕ вставлен PropertyID = ‘R50155’ { stmt: Оператор { stmt: неопределенный }, lastID: 0, изменения: 1 }

Мне это кажется правильным, но и

 SELECT * FROM 'myData' WHERE StateCode != 'NULL';
 

На самом деле дает ожидаемый ответ, когда я тестирую его вручную — все еще не уверен, почему он говорит undefined ..

Комментарии:

1. Попробуйте включить подробный режим и отслеживать ошибки SQL. Запустите их где-нибудь после создания db : sqlite3.verbose(); db.on("trace", (data) => { console.log(data); });

2. пожалуйста, смотрите Редактирование