2010-01-27 18 views
0

我正在使用LabVIEW和數據庫工具包來執行SQL查詢,並且由於語法原因它一直在對此進行檢查。我通過ODBC連接器使用MySQL。除了最後一行,每行的結尾都應該有一個換行符。這個SQL查詢有什麼問題嗎?

錯誤LabVIEW是拋是這樣的:

可能原因(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'; 


回答

0

Mimer Validator,你的SQL是好的。我的猜測是,由於某種原因,它不喜歡分號。

3

我認爲你需要將這些作爲單獨的SQL語句而不是一次發送。

+0

+1有一個在那裏,告訴你是在一個運行多個查詢服務器沒有在那裏。它可能需要合併到一個查詢中,或者需要將它分解爲多個更新查詢。 – David 2010-01-27 23:09:42

+0

是的,和JDBC一樣。可以在JDBC中同時運行多個語句,但可以將它們單獨添加到批處理中,然後運行該批處理。我假設在ODBC中有一個類似的功能。 – 2010-01-27 23:12:18

1

ADO不支持在單個操作中執行多個語句,您將需要依次執行它們。鑑於他們都是相似的,你可能想使用Prepared Statements

+0

+1。給出的例外情況對批次中的第二個陳述抱怨。 – 2010-01-27 23:11:26