Что-то не так с этим запросом SQL? - PullRequest
0 голосов
/ 28 января 2010

Я использую LabVIEW и Database Toolkit для выполнения SQL-запроса, и он продолжает раздражать его по причинам синтаксиса. Я использую MySQL через соединитель ODBC. Каждая строка должна иметь символ новой строки в конце, кроме последней.

Ошибка LabVIEW заключается в следующем:

Возможные причины:

Ошибка ADO: 0x80040E14 Исключение произошло в Microsoft OLE DB Provider для драйверов ODBC: [MySQL] [ODBC 5.1 Driver] [туздЫ-5.1.42-сообщества] Вы есть ошибка в вашем синтаксисе SQL; проверьте руководство, которое соответствует ваша версия сервера MySQL для правильный синтаксис для использования рядом с 'ОБНОВЛЕНИЕ plc_addresses SET CurrValue = '0,00' ГДЕ адрес = '1092'; ОБНОВЛЕНИЕ plc_a ' в строке 2 в 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';


Ответы [ 4 ]

3 голосов
/ 28 января 2010

Я думаю, вам нужно отправлять их как отдельные операторы SQL, а не как все сразу.

1 голос
/ 28 января 2010

ADO не поддерживает выполнение нескольких операторов в одной операции, вам нужно будет выполнять их последовательно один за другим. Учитывая, что все они похожи, вы можете использовать Подготовленные заявления .

0 голосов
/ 28 января 2010
0 голосов
/ 28 января 2010

Согласно Mimer Validator , ваш SQL в порядке. Я думаю, что по какой-то причине ему не нравятся точки с запятой.

...