Question
Connexion à une base sql server
- ROUSSEAU
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 8 ans 4 mois #24459
par ROUSSEAU
Connexion à une base sql server a été créé par ROUSSEAU
Bonjour à tous,
Je me retrouve dans la même problématique à savoir :
Mes besoins :
1- Connexion à un serveur sql.
2- Lancer une procédure stockée.
-> la procédure attend l'emplacement d'un fichier csv
3- Récupérer le résultat de la procédure stockée en csv (avec en-tête de colonnes).
Ça commence mal, je ne parviens même pas à me connecter au serveur sql avec le script ci-dessous :
**** message d'erreur ****
Exception lors de l'appel de « Fill » avec « 1 » argument(s) : « Impossible d'ouvrir la base de données \"CRMD03\" demandée par la connexion. La connexion a échoué.
Échec de l'ouverture de session de l'utilisateur 'MNT\admsro'. »
Au caractère Ligne:33 : 4
+ $Adapter.Fill($DataSet)
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (
[], MethodInvocationException
+ FullyQualifiedErrorId : SqlException[/i]
********************************************************
**** Script ****
Function Sql_Query([string] $sqServer, [string] $sqBase, [string] $sqQuery){
Clear
#Etablit la connexion avec la base SQL.
$Connection = New-Object System.Data.SqlClient.SqlConnection
$Connection.ConnectionString = \"Server = $sqServer; Database = $sqBase; Integrated Security = True\"
#Crée une commande SQL.
$sqlCmd = New-Object System.Data.SqlClient.SqlCommand
$sqlCmd.CommandTimeout = 30
$sqlCmd.CommandText = $sqQuery
$sqlCmd.Connection = $Connection
#Exécute et récupère le résultat.
$DataSet = New-Object System.Data.DataSet
$Adapter = New-Object System.Data.SqlClient.SqlDataAdapter
$Adapter.SelectCommand = $sqlCmd
$Adapter.Fill($DataSet)
#Ferme la connexion avec la base SQL.
$Connection.Close()
#Renvoie le résultat.
return $DataSet.Tables[0] #| Export-CSV \\srvappprd\Optin\GRC_Dialog\Log\Import_Sollicitations_Prospects.csv -Force
}
#Paramètres de connexion.
$SQLSERVER = \"srvxxx\"
$SQLBASE = \"CRMD03\"
# commande de test
#$SqlQuery = \"SELECT * FROM [INTRANET].[dbo].[personnes] #WHERE date_sortie_eff >= '20160508 00:00:00' \"
# Procédure stockée
$SqlQuery = \"dbo.test\"
#Exécute la requête.
$retour = Sql_Query $SQLSERVER $SQLBASE $SqlQuery
foreach ($raw in $retour)
{
Try { write-host $raw[0] } catch {}
}
write-host \"Exécution terminé\"
#Fin.
J'espère avoir été assez compréhensible.
Merci d'avance pour votre aide.
Je me retrouve dans la même problématique à savoir :
Mes besoins :
1- Connexion à un serveur sql.
2- Lancer une procédure stockée.
-> la procédure attend l'emplacement d'un fichier csv
3- Récupérer le résultat de la procédure stockée en csv (avec en-tête de colonnes).
Ça commence mal, je ne parviens même pas à me connecter au serveur sql avec le script ci-dessous :
**** message d'erreur ****
Exception lors de l'appel de « Fill » avec « 1 » argument(s) : « Impossible d'ouvrir la base de données \"CRMD03\" demandée par la connexion. La connexion a échoué.
Échec de l'ouverture de session de l'utilisateur 'MNT\admsro'. »
Au caractère Ligne:33 : 4
+ $Adapter.Fill($DataSet)
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (
+ FullyQualifiedErrorId : SqlException[/i]
********************************************************
**** Script ****
Function Sql_Query([string] $sqServer, [string] $sqBase, [string] $sqQuery){
Clear
#Etablit la connexion avec la base SQL.
$Connection = New-Object System.Data.SqlClient.SqlConnection
$Connection.ConnectionString = \"Server = $sqServer; Database = $sqBase; Integrated Security = True\"
#Crée une commande SQL.
$sqlCmd = New-Object System.Data.SqlClient.SqlCommand
$sqlCmd.CommandTimeout = 30
$sqlCmd.CommandText = $sqQuery
$sqlCmd.Connection = $Connection
#Exécute et récupère le résultat.
$DataSet = New-Object System.Data.DataSet
$Adapter = New-Object System.Data.SqlClient.SqlDataAdapter
$Adapter.SelectCommand = $sqlCmd
$Adapter.Fill($DataSet)
#Ferme la connexion avec la base SQL.
$Connection.Close()
#Renvoie le résultat.
return $DataSet.Tables[0] #| Export-CSV \\srvappprd\Optin\GRC_Dialog\Log\Import_Sollicitations_Prospects.csv -Force
}
#Paramètres de connexion.
$SQLSERVER = \"srvxxx\"
$SQLBASE = \"CRMD03\"
# commande de test
#$SqlQuery = \"SELECT * FROM [INTRANET].[dbo].[personnes] #WHERE date_sortie_eff >= '20160508 00:00:00' \"
# Procédure stockée
$SqlQuery = \"dbo.test\"
#Exécute la requête.
$retour = Sql_Query $SQLSERVER $SQLBASE $SqlQuery
foreach ($raw in $retour)
{
Try { write-host $raw[0] } catch {}
}
write-host \"Exécution terminé\"
#Fin.
J'espère avoir été assez compréhensible.
Merci d'avance pour votre aide.
Connexion ou Créer un compte pour participer à la conversation.
- Riblito
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 96
- Remerciements reçus 0
il y a 8 ans 4 mois #24460
par Riblito
Réponse de Riblito sur le sujet Re:Connexion à une base sql server
tu utilises un serveur distant ?
Si oui ton script utilise ta session windows pour s'y connecter je crois bien.
utilise ça pour voir
[code:1]
$Connection.ConnectionString = \"Server = $Server; Database = $Database; Integrated Security = false; User ID = $uid; Password = $pwd;\"[/code:1]
je suis débutant je me trompe peut être
Message édité par: elemremy, à: 27/10/17 09:16<br><br>Message édité par: elemremy, à: 27/10/17 11:02
Si oui ton script utilise ta session windows pour s'y connecter je crois bien.
utilise ça pour voir
[code:1]
$Connection.ConnectionString = \"Server = $Server; Database = $Database; Integrated Security = false; User ID = $uid; Password = $pwd;\"[/code:1]
je suis débutant je me trompe peut être
Message édité par: elemremy, à: 27/10/17 09:16<br><br>Message édité par: elemremy, à: 27/10/17 11:02
Connexion ou Créer un compte pour participer à la conversation.
- ROUSSEAU
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 8 ans 4 mois #24461
par ROUSSEAU
Réponse de ROUSSEAU sur le sujet Re:Connexion à une base sql server
Bonjour,
Merci de prendre du temps pour m'aider.
J'ai essayé la commande, mais malheureusement ça ne fonctionne pas, j'ai toujours le même message d'erreur.
Exception lors de l'appel de « Fill » avec « 1 » argument(s) : « Échec de l'ouverture de session de l'utilisateur 'nom du domaine\utilisateur'. »
Au caractère Ligne:18 : 4
+ $Adapter.Fill($DataSet)
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (
[], MethodInvocationException
+ FullyQualifiedErrorId : SqlException
Peut-être qu'il faut ouvrir des autorisations sur le serveur sql...
Merci de prendre du temps pour m'aider.
J'ai essayé la commande, mais malheureusement ça ne fonctionne pas, j'ai toujours le même message d'erreur.
Exception lors de l'appel de « Fill » avec « 1 » argument(s) : « Échec de l'ouverture de session de l'utilisateur 'nom du domaine\utilisateur'. »
Au caractère Ligne:18 : 4
+ $Adapter.Fill($DataSet)
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (
+ FullyQualifiedErrorId : SqlException
Peut-être qu'il faut ouvrir des autorisations sur le serveur sql...
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.057 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Connexion à une base sql server