2017-03-06 79 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

就是这样!你是我的男人!非常感谢 –