0

我正在使用 LabVIEW 和 Database Toolkit 来执行 SQL 查询,但出于语法原因,它一直对此表示不满。我通过 ODBC 连接器使用 MySQL。除最后一行外,每一行的末尾都应有一个换行符。

LabVIEW抛出的错误是这样的:

可能的原因:

ADO 错误:0x80040E14 Microsoft OLE DB Provider for ODBC Drivers 发生异常:[MySQL][ODBC 5.1 Driver][mysqld-5.1.42-community]您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 'UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1092' 附近使用正确的语法;在 NI_Database_API.lvlib 的第 2 行更新 plc_a':Conn Execute.vi->UpdatePLCAddressesTable.vi->DevelopSQL.vi

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


4

4 回答 4

3

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

于 2010-01-27T23:08:00.223 回答
1

ADO 不支持在单个操作中执行多个语句,您需要一个接一个地依次执行它们。鉴于它们都相似,您可能需要使用Prepared Statements

于 2010-01-27T23:10:12.230 回答
0

根据Mimer Validator,您的 SQL 很好。我的猜测是,出于某种原因,它不喜欢分号。

于 2010-01-27T23:07:20.270 回答
0

启用 FLAG_MULTI_STATEMENTS

参考:http ://dev.mysql.com/doc/refman/5.1/en/connector-odbc-configuration-connection-parameters.html

于 2010-01-27T23:11:11.430 回答