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 構文にエラーがあります。near 'UPDATE plc_addresses SET CurrValue = '0.00' WHERE Address = '1092'; を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。NI_Database_API.lvlib:Conn Execute.vi->UpdatePLCAddressesTable.vi->DevelopSQL.viの2行目のUPDATE plc_a'

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


4

4 に答える 4

3

一度にすべてではなく、個別の SQL ステートメントとして送信する必要があると思います。

于 2010-01-27T23:08:00.223 に答える
1

ADO では、1 回の操作で複数のステートメントを実行することはサポートされていません。それらを 1 つずつ順番に実行する必要があります。それらがすべて類似していることを考えると、 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 に答える