Question
Aide pour de l'optimisation
- Betrancourt
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 0
il y a 8 ans 7 mois #24035
par Betrancourt
Réponse de Betrancourt sur le sujet Catch -> SQL
Hey je me permet de ré ouvrir ce topic
je suis vers la fin de mon optimisation
pour info je me suis bien bien avancée, mais il me manque une dernière petite partie d'on je n'ai pas réussi à trouver d'aide sur le net, c'est sur la gestion d'erreur SQL server.
En gros voici mon code : [code:1]function Invoke-DatabaseQuery {
[CmdletBinding()]
param (
[System.Data.SqlClient.SqlConnection]$connection,
[string]$query
)
try {
$command = $connection.CreateCommand()
$command.CommandText = $query
[Void]$command.ExecuteNonQuery()
}
catch [System.Management.Automation.MethodInvocationException] {
write-log WARN -Message \"Impossible d'effectuer l'ajout SQL, l'application '$($app.id)' est déjà présente ! \"
}
catch {
write-log FATAL -Message \"Impossible d'effectuer l'action SQL\"
} [/code:1]
j'aimerais trouver les exceptions pour différencier le moment ou :
- il ne trouve pas la BDD
- il ne peut pas ajouter d'information car elle est déja présente dans la BDD
J'ai pas mal regardé le tuto de Laurent Dardenne sur la gestion d'erreur, mais aucun endroit sur le SQL
<br><br>Message édité par: Valeze, à: 26/07/17 09:15
pour info je me suis bien bien avancée, mais il me manque une dernière petite partie d'on je n'ai pas réussi à trouver d'aide sur le net, c'est sur la gestion d'erreur SQL server.
En gros voici mon code : [code:1]function Invoke-DatabaseQuery {
[CmdletBinding()]
param (
[System.Data.SqlClient.SqlConnection]$connection,
[string]$query
)
try {
$command = $connection.CreateCommand()
$command.CommandText = $query
[Void]$command.ExecuteNonQuery()
}
catch [System.Management.Automation.MethodInvocationException] {
write-log WARN -Message \"Impossible d'effectuer l'ajout SQL, l'application '$($app.id)' est déjà présente ! \"
}
catch {
write-log FATAL -Message \"Impossible d'effectuer l'action SQL\"
} [/code:1]
j'aimerais trouver les exceptions pour différencier le moment ou :
- il ne trouve pas la BDD
- il ne peut pas ajouter d'information car elle est déja présente dans la BDD
J'ai pas mal regardé le tuto de Laurent Dardenne sur la gestion d'erreur, mais aucun endroit sur le SQL
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 8 ans 7 mois #24036
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Catch -> SQL
Valeze écrit:
En revanche tu peux avoir des objets exception spécialisés qui portent d'autres informations.
Par exemple dans ton cas c'est une règle de gestion basique (intégrité référentielle). Soit c'est un trigger dans la base qui gère un code d'erreur propre à ton appli soit tu interprètes le résultat de l'exception pour chaque règle.
Je ne suis pas certains que la gestion de MethodInvocationException soit la bonne approche.
Il te faut créer un jeu de test pour chaque exception(régle) que tu veux gérer et lire la doc pour connaitre les exception déclenchées.
C'est là qu’intervient l'outil Pester
Normal, en dotnet la gestion d'exception n'est pas lié à domaine particulier.J'ai pas mal regardé le tuto de Laurent Dardenne sur la gestion d'erreur, mais aucun endroit sur le SQL
<br>
En revanche tu peux avoir des objets exception spécialisés qui portent d'autres informations.
Par exemple dans ton cas c'est une règle de gestion basique (intégrité référentielle). Soit c'est un trigger dans la base qui gère un code d'erreur propre à ton appli soit tu interprètes le résultat de l'exception pour chaque règle.
Je ne suis pas certains que la gestion de MethodInvocationException soit la bonne approche.
Il te faut créer un jeu de test pour chaque exception(régle) que tu veux gérer et lire la doc pour connaitre les exception déclenchées.
C'est là qu’intervient l'outil Pester
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.042 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Aide pour de l'optimisation