2017-03-06 74 views
0

我想在ODBC DSN MySql連接中執行多個查詢。如果我只執行一個查詢,它工作正常。但是,如果我嘗試執行多我總是得到這樣錯誤: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驅動程序}; Server = localhost; Database = myDataBase; User = myUsername; Password = myPassword; Option = 67108864;'將所有屬性值替換爲與您的系統匹配的值(驅動程序名稱,服務器等) – erg

+0

就是這樣!你是我的男人!非常感謝 –