Soyez le premier à donner votre avis sur cette source.
Vue 18 845 fois - Téléchargée 1 510 fois
Public Class OracleAccess #Region "Sous Classes" Public Class ORAError #Region "Variables" Dim Nbr As Integer Dim Desc As String Dim Src As String #End Region #Region "Propriétés" Public Property Number() As Integer Get Return Nbr End Get Set(ByVal Value As Integer) Nbr = Value End Set End Property Public Property Description() As String Get Return Desc End Get Set(ByVal Value As String) Desc = Value End Set End Property Public Property Source() As String Get Return Src End Get Set(ByVal Value As String) Src = Value End Set End Property #End Region End Class #End Region #Region "Déclarations Locales" Dim ORAConn As System.Data.OracleClient.OracleConnection Dim ORACommand As OracleClient.OracleCommand Dim ORAReader As OracleClient.OracleDataReader Dim ORAServer As String Dim ORAUser As String Dim ORAPasswd As String Dim libSQL As String #End Region #Region "Propriétés de Classe" Public LastError As ORAError Public Property Serveur() As String Get Return ORAServer End Get Set(ByVal Value As String) ORAServer = Value End Set End Property Public Property Utilisateur() As String Get Return ORAUser End Get Set(ByVal Value As String) ORAUser = Value End Set End Property Public Property MotDePasse() As String Get Return ORAPasswd End Get Set(ByVal Value As String) ORAPasswd = Value End Set End Property Public Property Connected() As Boolean Get Return (ORAConn.State = ConnectionState.Open) End Get Set(ByVal Value As Boolean) If Value = True Then Open() Else Close() End If End Set End Property Public Property SQL() As String Get Return libSQL End Get Set(ByVal Value As String) libSQL = Value End Set End Property #End Region #Region "Fonctions Publiques" Public Sub New() 'Initialisation des variables ORAConn = New OracleClient.OracleConnection ORACommand = New OracleClient.OracleCommand ORAServer = "" ORAUser = "" ORAPasswd = "" End Sub Public Overloads Function Open(ByVal Serveur As String, ByVal Utilisateur As String, ByVal MotDePasse As String) As String 'Connexion à la base de données 'Sur erreur, partir à l'onglet "ErrOpen" On Error GoTo ErrOpen 'Définition et initialisation de strCn Dim strCn As String strCn = "" 'Regarde si le paramètre Serveur n'est pas vide If Serveur <> "" Then 'S'il existe, on défini les variables avec les paramètres ORAServer = Serveur ORAUser = Utilisateur ORAPasswd = MotDePasse 'On défini la chaine de connexion strCn &= "Data Source=" & Serveur & ";" If Utilisateur <> "" Then strCn &= "User Id=" & Utilisateur & ";" If MotDePasse <> "" Then strCn &= "Password=" & MotDePasse & ";" ORAConn.ConnectionString = strCn 'Et on se connecte à la base de données ORAConn.Open() 'Renvoie la valeur Booléenne Vrai Return True Else Return False End If ErrOpen: 'En cas d'erreur, on défini l'historiquie d'erreur et on renvoie false LastError.Number = Err.Number LastError.Description = Err.Description LastError.Source = Err.Source Return False End Function Public Overloads Function open(ByVal serveur As String) As Boolean 'Fonction sans les paramètres utilisateur, on va les chercher 'dans les propriétés de la classe Return open(serveur, ORAUser, ORAPasswd) End Function Public Overloads Function Open() As Boolean 'Fonction sans les paramètres serveur, on va les chercher 'dans les propriétés de la classe Return Open(ORAServer, ORAUser, ORAPasswd) End Function Public Function Close() As Boolean 'Fermeture de la connexion On Error GoTo ErrClose ORAConn.Close() Return True ErrClose: LastError.Number = Err.Number LastError.Description = Err.Description LastError.Source = Err.Source Return False End Function Public Overloads Function ExecuteQuery(ByVal reqSQL As String, ByVal ResultTable As DataTable) As Boolean 'Execution de requête SQL avec Retour vers un DataTable On Error GoTo ErrRecupData Dim ORADataAdapt As New OracleClient.OracleDataAdapter(reqSQL, ORAConn) ORADataAdapt.Fill(ResultTable) Return True ErrRecupData: 'En cas d'erreur, on quitte la fonction en retournant False LastError.Number = Err.Number LastError.Description = Err.Description LastError.Source = Err.Source Return False End Function Public Overloads Function ExecuteQuery(ByVal reqSQL As String, ByVal ResultSet(,) As String) As Boolean 'Adaptation pour remplir dans un tableau string(,) On Error GoTo ErrRecupData Dim Table As DataTable Dim i, j As Integer 'Exécution de la fonction version DataTable If ExecuteQuery(reqSQL, Table) Then 'Si la fonction renvoie True 'Redimentionnement du tableau string(,) pour s'adapter au contenu de la 'DataTable ReDim ResultSet(Table.Columns.Count, Table.Rows.Count) 'Rempli le tableau string(,) For i = 0 To (Table.Columns.Count - 1) For j = 0 To (Table.Rows.Count - 1) ResultSet(i, j) = CStr(Table.Rows(j).Item(i)) Next Next 'Renvoie True Return True Else Return False End If ErrRecupData: LastError.Number = Err.Number LastError.Description = Err.Description LastError.Source = Err.Source Return False End Function Public Overloads Function ExecuteQuery(ByVal ResultTable As DataTable) As Boolean Return ExecuteQuery(libSQL, ResultTable) End Function Public Overloads Function ExecuteQuery(ByVal ResultSet(,) As String) As Boolean Return ExecuteQuery(libSQL, ResultSet) End Function Public Overloads Function ExecuteQuery() As DataTable Dim Table As New DataTable ExecuteQuery(libSQL, Table) Return Table End Function Public Overloads Function ExecuteNonQuery(ByVal reqSQL As String) As Integer On Error GoTo ErrExecuteSQL Dim i As Integer 'Initialisation de la commande ORACommand.CommandText = reqSQL ORACommand.CommandType = CommandType.Text ORACommand.Connection = ORAConn 'Exécution i = ORACommand.ExecuteNonQuery() Return i ErrExecuteSQL: Return -1 End Function #End Region End Class
18 déc. 2008 à 11:48
Très bonne classe merci bcp. @+
2 mars 2007 à 09:30
Je débute en VB2005 et c'est vraiment très différent de VB6
1 mars 2007 à 16:55
Open pour ouvrir la connexion et close pour la fermer. Je conseille d'ouvrir la connection lors de la création du formulaire et de la fermer avec ce formulaire.
Là, dans le petit bout de code, j'ai oublié le maVariable.Close
1 mars 2007 à 16:49
Par contre son utilisation est très facile
Dim maVariable as new OracleAccess
maVariable.Open(monInstenceOracle, monUser, monPassword)
Dim maTable as new DataTable
maVariable.ExecuteQuery("SELECT SYSDATE FROM DUAL", maTable)
dataGrid1.RecordSource = maTable
Enfin, quelque chose du style (Exemple ici pour afficher le contenu de ta requête dans un dataGrid)
Sinon, j'ai testé cette classe sur oracle 8i et 9i. J'utilise aussi OracleClient avec mes application C# et Oracle 10g. Je présume donc que cette classe est aussi compatible avec Oracle 10g...
1 mars 2007 à 15:41
Y a t'il des références spéciales à ajouter au projet?
Et surtout est ce que cela fonctionne avec toutes les versions d'Oracle??
merci d'avance.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.