2017-03-06 28 views
0

ODBC DSN MySql接続で複数のクエリを実行したい。 1つのクエリを実行するとうまく動作します。PowerShell:ODBC DSN接続の複数のクエリ

"ERROR [42000] [MySQL][ODBC 5.1 Driver][mysqld-5.0.84-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 TABLE SET ID = '5' WHERE TYPE = '500' AND ID' 
at line 2" 

マイスクリプト:

$qrys = @" 
UPDATE TABLE SET ID = '5' WHERE TYPE = '500' AND ID = '0'; 
UPDATE TABLE SET ID = '6' WHERE TYPE = '600' AND ID = '0'; 
UPDATE TABLE SET ID = '7' WHERE TYPE = '700' AND ID = '0'; 
UPDATE TABLE SET ID = '8' WHERE TYPE = '800' AND ID = '0'; 
"@ 


$conn = new-object System.Data.Odbc.OdbcConnection 
$conn.connectionstring = "DSN=MYDB" 
$conn.open() 

foreach ($sqlCommand in $qrys) { 

    $cmd = New-object System.Data.Odbc.OdbcCommand($sqlCommand,$conn) 
    $dataset = New-Object System.Data.DataSet 
    (New-Object System.Data.Odbc.OdbcDataAdapter($cmd)).Fill($dataSet) 

} 
$conn.Close() 

任意のアイデア私は、複数の実行しようとした場合しかし、私はいつもこのエラーが出ますか?事前に感謝します

+0

が本当に推測が、それは多分に反対されました。ストリングの終わりに? –

+0

更新しようとしているテーブルが実際にTABLEと呼ばれていますか、それともテーブル名で置き換える必要がありますか? –

答えて

2

MySqlではデフォルトで複数のクエリが有効になっていません。どちらの接続文字列にOPTIONS=67108864を追加したり、DSNの設定ダイアログのチェックボックスを有効にAllow multiple statements

enter image description here

参照:https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-configuration-connection-parameters.html

+0

接続文字列はどのように表示されますか? –

+0

'Driver = {MySQL ODBC 5.1 Driver};サーバ= localhost;データベース= myDataBase; ユーザー= myUsername;パスワード= myPassword;オプション= 67108864; 'すべてのプロパティ値をシステムに一致する値に置き換えてください(ドライバ名、サーバーなど) – erg

+0

それだけです!あなたは私の人です!どうもありがとう –

関連する問題