scada:语法错误

bakd9h0s  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(281)

我们有一个scada系统(intouch)。它在客户端pc上有一个access.mdb数据库文件,该文件被定义为系统dsn(WindowsODBC)。
我要做的是将整个数据库迁移到mariadb,运行在远程服务器上。我已经有一个正在运行的服务器,从scada pc到服务器的连接正在运行,它被添加为odbc中的系统dsn,使用mariadb odbc连接器。我还可以使用access的原生输出到odbc数据库,将access中的所有数据输出到maria数据库,因此我的所有数据都在maria中。
问题是:监控与数据采集系统不能读取任何白色信息。在scada的日志中,我得到了sql语法错误(忘了提到scada使用sql)。提前谢谢!
更新:它是老式的windowmaker应用程序,而不是archestra,因此使用了sql函数。我甚至把odbc连接器从maria改成了mysql,今天我做了一些日志。下面是错误:

"SELECT Checksum, (rest deletet by me.. is too long).... FROM Stp WHERE ProgNr=1and StpNr=0"

[37000] [MySQL][ODBC 8.0(a) Driver][mysqld-5.5.5-10.3.22-MariaDB]
You have an error in your SQL syntax; check the manual that corresponds 
to your MariaDB server version for the right syntax to use near 'StpNr=0' at line 1 (1064)
flseospp

flseospp1#

从你的更新审查,它看起来只是一个简单的ol'语法错误。
您提供的内容:

SELECT Checksum, (etc)... FROM Stp WHERE ProgNr=1and StpNr=0

日志抱怨语法错误 StpNr=0 但你的问题就在那之前,你没有在 AND 以及 ProgNr=1 命令。
正确的语法是:

SELECT Checksum, (etc)... FROM Stp WHERE ProgNr=1 and StpNr=0

根据我个人的经验,windowmaker sql函数非常难以处理(尤其是消息标记上的131个字符限制)。通常,您可以将查询记录下来,然后直接在数据库中尝试。

相关问题