Pesquisar este blog

quinta-feira, 9 de novembro de 2017

Executando comandos MySQL e MSSQL no Powershell

MSSQL

Para conexões com MSSQL utilizamos objetos do tipo System.Data.SqlClient.SqlConnection, podemos criar o objeto com seguinte comando.

$sql = new-object System.Data.SqlClient.SqlConnection;


Agora podemos analisar as propriedades dele com o cmdlet Get-Member

$sql | Get-Member

Vamos começar preenchendo a propriedade ConnectionString, com os dados da conexão.

$server = "localhost"
$user = "sa"
$password = "Pa$$w0rd"
$database = "TESTE_DB"
$sql.ConnectionString=“server=$server;user id=$user;password=$password;database=$database;pooling=false”

Após criarmos a conexão precisamos criar um objeto do tipo System.Data.SqlClient.SqlCommand para colocarmos o comando que vamos executar.

$sqlCmd = New-Object System.Data.SqlClient.SqlCommand

Também vamos precisar ter a string do comando que vamos executar

$Comando = “select  * from tabela

Agora precisamos atribuir o comando que criamos e a conexão ao objeto $sqlCmd

$sqlCmd.CommandText = $comando
$sqlCmd.Connection = $sql

Feito isso temos o objeto $sqlCmd pronto para a execução, iniciamos então abrindo a conexão e executando o comando.

$sql.open()
$sqlReader = $sqlcmd.ExecuteReader()

Agora temos que verificar os itens retornados, eles ficam dentro do $sqlReader no método Read, então executamos o código a baixo para retornar os itens.

while($sqlReader.Read()){
$sqlReader[0]
}

Devemos notar que o $sqlReader é um vetor, em cada uma das posições do vetor vai representar uma das colunas retornadas pelo select, caso queiramos a segunda coluna trocamos o [0] por [1].

Após isto não podemos esquecer de fechar a conexão com o banco.

$sql.Close()

Caso nosso interesse seja um insert, delete ou outro comando que não seja de leitura, utilizamos o ExecuteNonQuery ao invés do ExecuteReader.

$sqlReader = $sqlCmd.ExecuteNonQuery()


MySQL via PowerShell

Para utilizarmos o MySQL no Powershell é necessário termos uma DLL chamada MySql.Data.dll, que vem pode ser baixada no site do MySQL ( ela vem junto ao cliente MySQL )
Primeiro temos que carregar a DLL para nossa sessão Powershell.

[void][system.reflection.Assembly]::LoadFrom(“C:\MySql.Data.dll”)

Todo processo é muito semelhante ao do MSSQL, porém os objetos utilizados para criação da connection string e dos comandos muda.
Para criarmos a connection string utilizamos:

$sql = new-object MySql.Data.MySqlClient.MySqlConnection;
$server = "localhost"
$user = "root"
$password = "Pa$$w0rd"
$database = "TESTE_DB"
$sql.ConnectionString=“server=$server;user id=$user;password=$password;database=$database;pooling=false”

Então para executarmos o comando criamos o objeto de comando referente ao MySQL.

$sqlCmd = New-Object MySql.Data.MySqlClient.MySqlCommand



Retirado de : https://social.technet.microsoft.com/wiki/pt-br/contents/articles/14100.executando-comandos-mysql-e-mssql-no-powershell.aspx
Em: 09/11/2017


Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.