sql - 从 MariaDB 读取 SCADA:语法错误
问题描述
我们有一个 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)
解决方案
从对您的更新的审查来看,它看起来只是一个普通的语法错误。
您提供的内容:
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 个字符的限制)。您通常可以通过记录查询然后直接在数据库中尝试来帮助自己。
推荐阅读
- reactjs - Ant Design:警告:[antd: Upload] `transformFile` 已弃用。请直接使用`beforeUpload` :ReactJs
- c# - 如何在 Visual Studio(社区)的 C# 中打开语法错误突出显示?
- excel - 如何从最近的电子邮件开始将电子邮件从 Outlook 拉到 Excel?
- amazon-web-services - SNS 主题事件中的 AWS 账户 ID
- xargs - 使用xargs时如何解决没有这样的文件或目录
- python - MariaDB 连接器 python 获取执行的查询
- aws-codepipeline - 用于 CodePipeline 的云开发工具包失败,没有为 cdk.out 找到匹配的基本目录路径
- android - NanoHTTPD - 写入套接字而不是复制字符串来传递页面
- amazon-web-services - 有没有办法在 Github Actions 中运行 Boto3 (AWS SDK) 命令?
- api - 颤振错误:列表
不是 Map 类型的子类型