Powershell à lire à partir de la base de données à l'aide de ODBC DSN au lieu de chaîne de connexion
Je sais comment lire la valeur de la base de données à l'aide de connectionstring, c'est à dire
Établir la connexion de base de données à lire
$conn = New-Object System.Data.SqlClient.SqlConnection
$conn.ConnectionString = "Server=10.10.10.10;Initial Catalog=database_name;User Id=$username;Password=$password;"
$SQL = "..."
$conn.Open()
# Create and execute the SQL Query
$cmd = New-Object System.Data.SqlClient.SqlCommand($sql,$conn)
$count=0
do{
try{
$rdr = $cmd.ExecuteReader()
while ($rdr.read()){
$sql_output += ,@($rdr.GetValue(0), $rdr.GetValue(1))
$count=$count + 1
}
$transactionComplete = $true
}
catch{
$transactionComplete = $false
}
}until ($transactionComplete)
# Close the database connection
$conn.Close()
Comment puis-je faire la même chose avec ODBC, j'.e j'ai DSN (data source name) mis en place sur le serveur?
N'a la réponse ci-dessous pour vous?
OriginalL'auteur Glowie | 2014-08-14
Vous devez vous connecter pour publier un commentaire.
Selon https://www.connectionstrings.com/odbc-dsn/ vous utilisez quelque chose comme...
Peut probablement juste aller avec
DSN=...
si creds pas nécessaire.oui, il a travaillé, même avec chiffré $mot de passe
$qt = $ws.QueryTables.Add("ODBC;DSN=$DSN;UID=$username;PWD=$password", $ws.Range("A1"), $SQL1)
C'est une question connexe, stackoverflow.com/questions/25867442/...
Cela n'a pas fonctionné pour moi, que ce soit pour la SqlClient, ce qui fonctionne pour une connexion ODBC. Avec le SqlClient j'obtiens l'erreur suivante: l'Exception d'appel ".ctor" avec "1" argument(s): "mot-Clé non pris en charge: 'dsn'."
OriginalL'auteur andyb
Cela fonctionne si votre connexion ODBC est en vertu de la DSN Utilisateur, mais pas en vertu de la DSN Système. Je ne peux pas trouver un moyen de faire vérifier le Système de connexions DSN.
OriginalL'auteur Iconiu
Vous voudrez peut-être mettre cela en avant du code...
Si vous voulez le faire sur votre machine locale plutôt que dans le contexte de SQL server, puis je voudrais utiliser. C'est ce que nous utilisons dans mon entreprise.
Toujours en cours d'exécution en 32 bits PowerShell à ce point.
OriginalL'auteur Cary