SCADA 从 MariaDB 读取:语法错误
SCADA reading from MariaDB: Error in Syntax
我们有一个 SCADA 系统 (Intouch)。它在客户端 PC 上有一个 Access .mdb 数据库文件,定义为系统 DSN (Windows ODBC)。
我想做的是将整个数据库迁移到 MariaDB,运行 在远程服务器上。我已经有一个 运行 服务器,从 SCADA PC 到服务器的连接是一个 运行 并且它被添加为 ODBC 中的系统 DSN,使用 MariaDB ODBC 连接器。我还能够将所有数据从 Access 导出到 Maria 数据库,使用 Access 的本机导出到 ODBC 数据库,所以我的所有数据都在 Maria 中。
问题:SCADA 无法读取 ot white anythig。在 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)
从您的更新审核来看,它看起来只是一个普通的语法错误。
您提供的内容:
SELECT Checksum, (etc)... FROM Stp WHERE ProgNr=1and StpNr=0
日志抱怨 StpNr=0
的语法,但您的问题就在您没有在 AND
和 ProgNr=1
命令之间放置 space 之前.
正确的语法是:
SELECT Checksum, (etc)... FROM Stp WHERE ProgNr=1 and StpNr=0
根据我的个人经验,WindowMaker SQL 函数使用起来非常笨拙(尤其是在消息标签的 131 个字符限制下)。您通常可以通过记录查询然后直接在数据库中尝试来帮助自己解决问题。
我们有一个 SCADA 系统 (Intouch)。它在客户端 PC 上有一个 Access .mdb 数据库文件,定义为系统 DSN (Windows ODBC)。
我想做的是将整个数据库迁移到 MariaDB,运行 在远程服务器上。我已经有一个 运行 服务器,从 SCADA PC 到服务器的连接是一个 运行 并且它被添加为 ODBC 中的系统 DSN,使用 MariaDB ODBC 连接器。我还能够将所有数据从 Access 导出到 Maria 数据库,使用 Access 的本机导出到 ODBC 数据库,所以我的所有数据都在 Maria 中。
问题:SCADA 无法读取 ot white anythig。在 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)
从您的更新审核来看,它看起来只是一个普通的语法错误。
您提供的内容:
SELECT Checksum, (etc)... FROM Stp WHERE ProgNr=1and StpNr=0
日志抱怨 StpNr=0
的语法,但您的问题就在您没有在 AND
和 ProgNr=1
命令之间放置 space 之前.
正确的语法是:
SELECT Checksum, (etc)... FROM Stp WHERE ProgNr=1 and StpNr=0
根据我的个人经验,WindowMaker SQL 函数使用起来非常笨拙(尤其是在消息标签的 131 个字符限制下)。您通常可以通过记录查询然后直接在数据库中尝试来帮助自己解决问题。