这个 SQL 查询有什么问题吗?

发布于 2024-08-19 02:09:04 字数 4615 浏览 9 评论 0原文

我正在使用 LabVIEW 和数据库工具包来执行 SQL 查询,但由于语法原因,它一直在执行此操作。我通过 ODBC 连接器使用 MySQL。除最后一行外,每一行末尾都应有一个换行符。

LabVIEW 抛出的错误是这样的:

可能的原因:

ADO 错误:0x80040E14 异常 发生在 Microsoft OLE DB Provider 中 对于 ODBC 驱动程序:[MySQL][ODBC 5.1 驱动程序][mysqld-5.1.42-community]你 SQL 语法有错误; 检查对应的手册 您的 MySQL 服务器版本 在“更新”附近使用正确的语法 plc_地址 SET CurrValue = '0.00' 其中地址='1092';更新 plc_a' 在第 2 行 NI_Database_API.lvlib:Conn 执行.vi->UpdatePLCAddressesTable.vi->DevelopSQL.vi

UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1132';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1092';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1103';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1105';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1161';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1167';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1129';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1088';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1098';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1099';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1100';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1117';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1118';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1106';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1107';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1108';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1109';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1110';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1111';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1151';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1154';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1157';
UPDATE plc_addresses SET CurrValue = '-1023.75' WHERE Address = '1119';
UPDATE plc_addresses SET CurrValue = '-1023.75' WHERE Address = '1120';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1165';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1095';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1164';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1096';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1097';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1121';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1122';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1123';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1124';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1089';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1101';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1112';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1113';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1114';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1115';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1116';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1091';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1141';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1142';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1143';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1139';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1153';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1148';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1145';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1150';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1147';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1149';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1146';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1104';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1093';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1125';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1126';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1127';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1094';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1114';
UPDATE plc_addresses SET CurrValue = '-2522.00' WHERE Address = '1114';


I'm using LabVIEW and the Database Toolkit to execute an SQL query, and it keeps barfing on this for syntax reasons. I'm using MySQL through the ODBC connector. Each line should have a newline character at the end except for the last.

The error LabVIEW is throwing is this:

Possible reason(s):

ADO Error: 0x80040E14 Exception
occured in Microsoft OLE DB Provider
for ODBC Drivers: [MySQL][ODBC 5.1
Driver][mysqld-5.1.42-community]You
have an error in your SQL syntax;
check the manual that corresponds to
your MySQL server version for the
right syntax to use near 'UPDATE
plc_addresses SET CurrValue = '0.00'
WHERE Address = '1092'; UPDATE plc_a'
at line 2 in
NI_Database_API.lvlib:Conn
Execute.vi->UpdatePLCAddressesTable.vi->DevelopSQL.vi

UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1132';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1092';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1103';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1105';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1161';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1167';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1129';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1088';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1098';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1099';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1100';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1117';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1118';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1106';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1107';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1108';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1109';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1110';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1111';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1151';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1154';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1157';
UPDATE plc_addresses SET CurrValue = '-1023.75' WHERE Address = '1119';
UPDATE plc_addresses SET CurrValue = '-1023.75' WHERE Address = '1120';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1165';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1095';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1164';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1096';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1097';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1121';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1122';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1123';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1124';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1089';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1101';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1112';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1113';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1114';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1115';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1116';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1091';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1141';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1142';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1143';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1139';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1153';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1148';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1145';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1150';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1147';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1149';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1146';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1104';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1093';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1125';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1126';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1127';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1094';
UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1114';
UPDATE plc_addresses SET CurrValue = '-2522.00' WHERE Address = '1114';


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

只为一人 2024-08-26 02:09:04

我认为您需要将这些作为单独的 SQL 语句发送,而不是一次发送所有语句。

I think you need to send these as individual SQL statements, instead of all of them at once.

☆獨立☆ 2024-08-26 02:09:04

ADO 不支持在单个操作中执行多个语句,您需要一个接一个地按顺序执行它们。鉴于它们都很相似,您可能需要使用 准备好的语句

ADO does not support multiple statements to be executed in a single operation, you will need to execute them sequentially one after the other. Given they are all similar you might want to use Prepared Statements.

杯别 2024-08-26 02:09:04

根据Mimer Validator,你的SQL没问题。我的猜测是,由于某种原因,它不喜欢分号。

According to Mimer Validator, your SQL is fine. My guess is that for some reason, it doesn't like the semi-colons.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文