Проблема с автоматическим запросом SQLite через узел Red

#sqlite #node-red

#sqlite #узел-красный

Вопрос:

Внимание, я полный новичок в SQLite и Node-Red.

Я работаю над проектом по сканированию и считыванию автомобильных номерных знаков. Теперь у меня запущено аппаратное обеспечение, оно передает информацию о табличке в очень простую таблицу SQLite 3 из двух записей через узел-Red на Raspberry Pi 3.

Я могу запускать мгновенные запросы, когда модуль отправляет точный запрос для запуска, т.Е.

 SELECT "License_Plate" FROM QuickDirtyDB WHERE "License_Plate" LIKE "%RAF66%"
  

Это вернется с моей таблицей RAF660, как показано ниже

 topic: "SELECT "License_Plate" FROM QuickDirtyDB WHERE "License_Plate" LIKE "%RAF66%""

payload: array[1]

0: object

License_Plate: "RAF660"
  

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

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

 'var readlpr = msg.payload;
 msg.topic = 'SELECT "License_Plate" FROM QuickDirtyDB WHERE "License_Plate" = '   readlpr   '' 
 return msg;'
  

это две одинарные кавычки в конце строки запроса.

Это передается в запрос, как показано ниже, это выходные данные узла отладки, именно то, что входит в запрос.

 "SELECT "License_Plate" FROM QuickDirtyDB WHERE "License_Plate" = RAF660 "
  

и возникающая ошибка,

 "Error: SQLITE_ERROR: no such column: RAF660"
  

После того, как это сработает, мне нужно решить, как я могу разрешить несоответствие двух символов в случае, если программа распознавания текста либо неправильно прочитает два символа, либо даже полностью удалит два символа. Это то, с чем может справиться запрос, или мне придется передать много деталей таблички программе, чтобы определить, есть ли у меня совпадение?

Я думал, что мне пришлось бы запустить запрос, чтобы создать какое-то представление, а затем запросить мою табличку для чтения по сравнению с этим представлением, чтобы увидеть, какая табличка в базе данных является наиболее подходящей, не уверен, что у меня правильная терминология, view, join, union и т.д.

Спасибо за просмотр и любые предложения, которые у вас могут возникнуть.

Вероятно, я отправлюсь домой примерно через час, поэтому, возможно, не смогу вернуться до понедельника

Ответ №1:

RAF660 является строкой и должна быть заключена в кавычки "RAF660"

License_Plate является столбцом и не должен заключаться в кавычки.

То, как у вас это работает, читается как выборка строк, где столбцу RAF660 присвоено значение «License_Plate».