$assembly = [system.reflection.Assembly]::LoadWithPartialName("MySql.Data") if ($assembly -eq $null) { "Can't load assembly MySql.Data" exit 100 } try { $connectionString =[string]::Format("server=127.0.0.1;uid=root;port={0};Connection Reset=true;",$Env:MASTER_MYPORT) $connection = [MySql.Data.MySqlClient.MySqlConnection]@{ConnectionString=$connectionString} $connection.Open() # Test ExecuteReader() $command = New-Object MySql.Data.MySqlClient.MySqlCommand $command.Connection = $connection $command.CommandText = "SELECT @@old_mode" $reader = $command.ExecuteReader() $reader.GetName(0) while ($reader.Read()) { $reader.GetValue(0) } # Test connection reset $connection.Close() $connection.Open() # Test ExecuteNonQuery() $command.CommandText="do 1"; $affected_rows = $command.ExecuteNonQuery() if ($affected_rows -ne 0) { "Expected affected rows 0, actual $affected_rows" exit 1 } # Test Prepared Statement $command.CommandText = "SELECT @var"; [void]$command.Parameters.AddWithValue("@var", 1); $command.Prepare(); $out = $command.ExecuteScalar(); if ($out -ne 1) { "Expected output 1, actual $out" exit 1 } $connection.Close() } catch { # Dump exception $_ $inner = $PSItem.Exception.InnerException if ($inner -ne $null) { $PSItem.Exception.InnerException.Message $PSItem.Exception.InnerException.StackTrace } }