0

我们有一个 SCADA 系统 (Intouch)。它在客户端 PC 上有一个 Access .mdb 数据库文件,该文件被定义为 System DSN (Windows ODBC)。

我想要做的是将整个数据库迁移到 MariaDB,在远程服务器上运行。我已经有一个正在运行的服务器,从 SCADA PC 到服务器的连接正在运行,它使用 MariaDB ODBC 连接器在 ODBC 中添加为系统 DSN。我还能够将所有数据从 Access 导出到 Maria 数据库,使用 Access 的本机导出到 ODBC 数据库,所以我的所有数据都在 Maria 中。

问题:SCADA 无法读取任何东西。在 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)
4

1 回答 1

1

从对您的更新的审查来看,它看起来只是一个普通的语法错误。

您提供的内容:

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 个字符的限制)。您通常可以通过记录查询然后直接在数据库中尝试来帮助自己。

于 2020-06-05T15:29:42.890 回答