Problème de connexions et requêtes sur les instances
Bonsoir,
Je vous sollicite car je commence à tourner en rond.
Je souhaites créer un bout de code pour pouvoir me connecter à mes machines en Powershell 2.0 (voir 3.0) et requêter SQL Server avec les problématiques suivantes:
- je veux une méthode de chargement et connection rapide
- une méthode qui prend en charge SQL 2005 à 2014 sans changer de méthode de connection si possible.
- un result facile à parser avec des foreach et à découper avec des splits par exemple.
Je fais peut être fausse route avec mon code n'hésitez pas à me proposer d'autres choses.
J'ai essayé un truc du genre :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| # Open SQL connection
$sqlConnection = New-Object System.Data.SqlClient.SqlConnection
$sqlConnection.ConnectionString = "Server=$ServerInstance;Database=master;Integrated Security=True"
# Get Data
try
{
$sqlConnection.Open()
if ($sqlConnection.state -eq 'Open')
{
$sqlDataAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$dataTable = New-Object System.Data.DataTable
$sqlCommandSelect = New-Object System.Data.SqlClient.SqlCommand
$sqlCommandSelect.CommandText = "SELECT @@VERSION"
$sqlCommandSelect.Connection = $sqlConnection
$sqlDataAdapter.SelectCommand = $sqlCommandSelect
$sqlDataAdapter.Fill($dataTable) | Out-Null
$sqlConnection.Close()
$dataTable
}
}
catch
{
Write-Output ($_.Exception.Message)
} |
Je ne suis pas sur de savoir ou cela ne fonctionne pas car quand j’essaye de découper le dataset powershell m'envoi bouler en me disant que c'est un null array.
J'avais testé des méthodes qui fonctionnent plus facilement du genre SQLPS et les assemblies mais je trouve les assemblies pas souples à charger et SQLPS très lent.
Cordialement.