通过Node Red进行自动SQLite查询的问题

时间:2019-03-15 20:38:52

标签: sqlite node-red

警告,我是使用SQLite和Node-Red的完全菜鸟。

我正在研究扫描和读取汽车牌照的项目。现在,我已经启动并运行了硬件,它正在通过Raspberry Pi 3上的Node-Red将板信息传递到一个非常基本的SQLite 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"

在工作之后,我需要弄清楚如何允许两个字符不匹配,以防OCR软件误读两个字符甚至完全丢弃两个字符。这是查询可以处理的事情,还是如果我有匹配项,我是否必须将许多板的详细信息传递给程序才能解决?

我以为我必须运行查询才能创建某种视图,然后重新查询我的读板与该视图,以查看数据库中哪个板最匹配,不确定我的术语是否正确,查看,加入,联合等。

感谢您的寻找和任何建议。

我大概会在一个小时内回家,所以可能要等到星期一才能签到

1 个答案:

答案 0 :(得分:0)

RAF660是一个字符串,需要用引号"RAF660"

License_Plate是一列,不应引用。

将其读取为获取RAF660列设置为值“ License_Plate”的行的方式。