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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230
|
Imports System.Data, System.Data.SqlClient
Public Class Sad
Public Function RQ_Maj(ByVal MaRequete As String)
Dim cmd As SqlCommand
Dim cnx As SqlConnection
Try
' Construction de la cnx
cnx = New SqlConnection
cnx.ConnectionString = modConfig.ChCnx
' Ouverture d'une connexion
cnx.Open()
If (cnx.State = ConnectionState.Open) Then
modTrace.TracerSQL("Connexion temporaire réussie sur " & modConfig.Serveur, Connexion.IP, Connexion.LoginNT)
Else
modTrace.TracerSQL("Connexion temporaire échouée sur " & modConfig.Serveur, Connexion.IP, Connexion.LoginNT)
End If
' Commande
cmd = New SqlCommand(MaRequete, cnx)
cmd.CommandType = CommandType.Text
' Execution de la requête
modTrace.TracerSQL("Tentative d'exécution de la requête (Update, Insert, ou Delete) : " & MaRequete, Connexion.IP, Connexion.LoginNT)
cmd.ExecuteNonQuery()
modTrace.TracerSQL("Exécution de la requête réussie (Update, Insert, ou Delete) : " & MaRequete, Connexion.IP, Connexion.LoginNT)
Catch ex As Exception
modTrace.TracerSQL("ERREUR sur l'exécution de la requête (" & MaRequete & ")" & ". Erreur : " & ex.Message & ". " & ex.StackTrace, Connexion.IP, Connexion.LoginNT)
Erreur.Ecrire(ex, Erreur.enLogicielErreur.leComposant, MaRequete, Connexion.IP, Connexion.LoginNT)
Finally
' Fermeture de la commande
cmd = Nothing
' Fermeture de la connexion
If Not (cnx Is Nothing) Then
cnx.Close()
cnx.Dispose()
cnx = Nothing
End If
If Not (cnx Is Nothing) Then
modTrace.TracerSQL("Connexion temporaire fermée sur " & modConfig.Serveur, Connexion.IP, Connexion.LoginNT)
End If
End Try
End Function
' ---------------------------------------------------
' Retourne un nombre
' -----------------------------------------------------
Public Function RQ_Scal(ByVal MaRequete As String)
Dim cmd As SqlCommand
Dim cnx As SqlConnection
Try
' Construction de la cnx
cnx = New SqlConnection
cnx.ConnectionString = modConfig.ChCnx
' Ouverture d'une connexion
cnx.Open()
If (cnx.State = ConnectionState.Open) Then
modTrace.TracerSQL("Connexion temporaire réussie sur " & modConfig.Serveur, Connexion.IP, Connexion.LoginNT)
Else
modTrace.TracerSQL("Connexion temporaire échouée sur " & modConfig.Serveur, Connexion.IP, Connexion.LoginNT)
End If
' Commande
cmd = New SqlCommand(MaRequete, cnx)
cmd.CommandType = CommandType.Text
' Execution de la requête
modTrace.TracerSQL("Tentative d'exécution de la requête (Count) : " & MaRequete, Connexion.IP, Connexion.LoginNT)
RQ_Scal = cmd.ExecuteScalar()
modTrace.TracerSQL("Exécution de la requête réussie (Count) : " & MaRequete, Connexion.IP, Connexion.LoginNT)
Catch ex As Exception
modTrace.TracerSQL("ERREUR sur l'exécution de la requête (" & MaRequete & ")" & ". Erreur : " & ex.Message & ". " & ex.StackTrace, Connexion.IP, Connexion.LoginNT)
Erreur.Ecrire(ex, Erreur.enLogicielErreur.leComposant, MaRequete, Connexion.IP, Connexion.LoginNT)
Finally
' Fermeture de la commande
cmd = Nothing
' Fermeture de la connexion
cnx.Close()
cnx.Dispose()
cnx = Nothing
If (cnx Is Nothing) Then
modTrace.TracerSQL("Connexion temporaire fermée sur " & modConfig.Serveur, Connexion.IP, Connexion.LoginNT)
End If
End Try
End Function
' ---------------------------------------------------
' Renvoit un Dataview pour gérer les pages
' -----------------------------------------------------
Public Function Page(ByVal MaRequete As String) As DataView
Dim cmd As SqlDataAdapter
Dim ds As DataSet = Nothing
Dim dv As DataView = Nothing
Try
Connexion.Connexion()
If (Connexion.ConnexionOuverte = False) Then
Return Page2(MaRequete)
End If
' Commande
cmd = New SqlDataAdapter(MaRequete, gCon)
If Not (cmd Is Nothing) Then
ds = New DataSet
' Execution de la requête
modTrace.TracerSQL("Tentative d'exécution de la requête : " & MaRequete, Connexion.IP, Connexion.LoginNT)
cmd.Fill(ds)
modTrace.TracerSQL("Exécution de la requête réussie (" & MaRequete & ")", Connexion.IP, Connexion.LoginNT)
End If
cmd = Nothing
If Not (ds Is Nothing) Then
If Not (ds.Tables(0) Is Nothing) Then
Return New DataView(ds.Tables(0))
Else
Return Nothing
End If
Else
Return Nothing
End If
Catch ex As Exception
cmd = Nothing
Connexion.Deconnexion()
' Essayons de force l'exécution de cette requête sur une nouvelle connexion
Select Case ex.Message
Case "Un DataReader associé à cette connexion est déjà ouvert, il doit être tout d'abord fermé.", _
"La référence d'objet n'est pas définie à une instance d'un objet."
ex = Nothing
Return Page2(MaRequete)
Case Else
modTrace.TracerSQL("ERREUR sur l'exécution de la requête (" & MaRequete & ")" & ". Erreur : " & ex.Message & ". " & ex.StackTrace, Connexion.IP, Connexion.LoginNT)
Erreur.Ecrire(ex, Erreur.enLogicielErreur.leComposant, MaRequete, Connexion.IP, Connexion.LoginNT)
End Select
Finally
If (Not ds Is Nothing) Then
ds = Nothing
End If
End Try
End Function
' ---------------------------------------------------
' Renvoit un Dataview pour gérer les pages
' -----------------------------------------------------
Public Function Page2(ByVal MaRequete As String) As DataView
Dim cnx As SqlConnection
Dim cmd As SqlDataAdapter
Dim ds As DataSet = Nothing
Dim dv As DataView = Nothing
Try
' Construction de la cnx
cnx = New SqlConnection
cnx.ConnectionString = modConfig.ChCnx
' Ouverture d'une connexion
cnx.Open()
If (cnx.State = ConnectionState.Open) Then
modTrace.TracerSQL("Connexion temporaire réussie sur " & modConfig.Serveur, Connexion.IP, Connexion.LoginNT)
Else
modTrace.TracerSQL("Connexion temporaire échouée sur " & modConfig.Serveur, Connexion.IP, Connexion.LoginNT)
End If
If (cnx.State = ConnectionState.Open) Then
' Commande
cmd = New SqlDataAdapter(MaRequete, cnx)
If Not (cmd Is Nothing) Then
ds = New DataSet
' Execution de la requête
modTrace.TracerSQL("Tentative d'exécution de la requête : " & MaRequete, Connexion.IP, Connexion.LoginNT)
cmd.Fill(ds)
modTrace.TracerSQL("Exécution de la requête réussie (" & MaRequete & ")", Connexion.IP, Connexion.LoginNT)
End If
cmd = Nothing
If Not (ds Is Nothing) Then
If Not (ds.Tables(0) Is Nothing) Then
Return New DataView(ds.Tables(0))
Else
Return Nothing
End If
Else
Return Nothing
End If
End If
Catch ex As Exception
cmd = Nothing
Connexion.Deconnexion()
modTrace.TracerSQL("ERREUR sur l'exécution de la requête (" & MaRequete & ")" & ". Erreur : " & ex.Message & ". " & ex.StackTrace, Connexion.IP, Connexion.LoginNT)
Erreur.Ecrire(ex, Erreur.enLogicielErreur.leComposant, MaRequete, Connexion.IP, Connexion.LoginNT)
Finally
If (Not ds Is Nothing) Then
ds = Nothing
End If
' Fermeture de la connexion
cnx.Close()
cnx.Dispose()
cnx = Nothing
If (cnx Is Nothing) Then
modTrace.TracerSQL("Connexion temporaire fermée sur " & modConfig.Serveur, Connexion.IP, Connexion.LoginNT)
End If
End Try
End Function
End Class |
Partager