Question Connexion à une base sql server

Plus d'informations
il y a 8 ans 4 mois #24459 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. :)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
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

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 4 mois #24461 par ROUSSEAU
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...

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.074 secondes
Propulsé par Kunena