这个 SQL 查询有什么问题吗?
我正在使用 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技术交流群](/public/img/jiaqun_03.jpg)
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我认为您需要将这些作为单独的 SQL 语句发送,而不是一次发送所有语句。
I think you need to send these as individual SQL statements, instead of all of them at once.
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.
根据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.
启用 FLAG_MULTI_STATEMENTS
参考: http:// dev.mysql.com/doc/refman/5.1/en/connector-odbc-configuration-connection-parameters.html
Enable FLAG_MULTI_STATEMENTS
Reference: http://dev.mysql.com/doc/refman/5.1/en/connector-odbc-configuration-connection-parameters.html