2.1. Clase BaseDatos.Constructores

4 comentarios
En primer lugar vamos a crear la clase BaseDatos, que es quien va ha llevar todo el peso de las comunicaciones con la base de datos a la que conectaremos. Creamos una clase llamada BaseDatos y escribimos el siguiente código:

Option Explicit On

Imports System.Data.Common

Public Class BaseDatos

    Public Enum BBDD
        SQL = 1
        ODBC = 2
        OLEDB = 3
    End Enum

    Private Conexion As IDbConnection = Nothing
    Private Commando As IDbCommand = Nothing
    Private Transaccion As IDbTransaction = Nothing
    Private sCadenaConexion As String
    Private _Factory As DbProviderFactory = Nothing
    Private tipoBBDD As BBDD
    Private pParametros() As IDbDataParameter

End Class


Notas:
  • Option Explicit ON hay que meterlo al principio de cualquier clase que creemos. Esto es para que no nos permita crear variables sin definir el tipo, pues puede crear errores de compilacion.
  • El tipo Enumerado nos servira para identificar el tipo de conexion a la Base de Datos.
El segundo paso es crear los distintos constructores de la clase:

  1. Constructor parametrizado, donde le pasamos el tipo de conexion (SQL,ODCB,OLEDB), el nombre de la base de datos, el usuario y la contraseña

Public Sub New(ByVal tipoConexion As BaseDatos.BBDD, _
                   ByVal sBaseDatos As String, _
                   ByVal sUsuario As String, _
                   ByVal sPass As String)
        Try

            Dim proveedor As String = ""
            InicializarVariables()

            Me.tipoBBDD = tipoConexion
            Select Case Me.tipoBBDD
                Case BBDD.SQL : proveedor = "System.Data.SqlClient"
                Case BBDD.ODBC : proveedor = "System.Data.Odbc"
                Case BBDD.OLEDB : proveedor = "System.Data.OleDb"
            End Select

            Me.sCadenaConexion = "DSN=" & sBaseDatos & ";UID=" & sUsuario & ";PWD=" & sPass
            Me._Factory = DbProviderFactories.GetFactory(proveedor)
            pParametros = Nothing

        Catch ex As Exception
            Throw New BaseDatosException("ERROR :" &  ex.Message & " BASEDATOS.New(Parametros) ", ex)
        End Try
    End Sub
 
2. Constructor con parametros establecidos en el app.config del programa, el pasamos la key del proveedor y la key de la Base de Datos.

Public Sub New(ByVal ProveedorBBDD As String, ByVal sKeyConfig As String)

        Try

            Dim proveedor As String = ConfigurationManager.AppSettings.Get(ProveedorBBDD)

            Select Case Trim(proveedor)
                Case "System.Data.SqlClient" : tipoBBDD = BBDD.SQL
                Case "System.Data.Odbc" : tipoBBDD = BBDD.ODBC
                Case "System.Data.OleDb" : tipoBBDD = BBDD.OLEDB
            End Select

            Me.sCadenaConexion = ConfigurationManager.AppSettings.Get(sKeyConfig)
            Me._Factory = DbProviderFactories.GetFactory(proveedor)
            pParametros = Nothing

        Catch ex As Exception
            Throw New BaseDatosException("ERROR :" & ex.Message & " BASEDATOS.New(sKeyConfig) ", ex)
        End Try
    End Sub

NOTA: el app.config es un fichero de configuracion que contiene parametros totalmente configurables y que se pueden utilizar en toda la solucion. Es como un equivalente a las constantes por asi decirlo. En este caso, el app.config tendria configurado el parametro Proveedor y la key de la base de datos es donde se identifica la cadena de conexion. Para acceder al app.config llamaremos a la funcion "ConfigurationManager", y para poder utilizarla debemos añadir la referencia "System.Configuration" en las referencias del proyecto.



3. Constructor con parametros, le pasamos el tipo de conexion y la cadena de conexion.

Public Sub New(ByVal tipoConexion As BaseDatos.BBDD, _
                   ByVal sCadenaConexion As String)
        Try
            Dim proveedor As String = ""

            tipoBBDD = tipoConexion
            Select Case tipoBBDD
                Case BBDD.SQL : proveedor = "System.Data.SqlClient"
                Case BBDD.ODBC : proveedor = "System.Data.Odbc"
                Case BBDD.OLEDB : proveedor = "System.Data.OleDb"
            End Select

            Me.sCadenaConexion = sCadenaConexion
            Me._Factory = DbProviderFactories.GetFactory(proveedor)
            pParametros = Nothing
        Catch ex As ConfigurationErrorsException
            Throw New BaseDatosException("ERROR :" & ex.Message & " BASEDATOS.New(tipoConexion,CadenaConexion) ", ex)
        End Try
    End Sub







4 comentarios:

buena explicación estaré al tanto del performance.

1 de abril de 2014, 9:23 comment-delete

iniziaclizarvariables()??

21 de mayo de 2014, 10:26 comment-delete

InicializarVariables() es una funcion privada en la clase cuya mision es inicializar todos los atributos de la clase, y es llamada en todos al inicio en todos los constructores.

21 de mayo de 2014, 12:19 comment-delete

Podrias mostrar la configuracion del archivo app.config ?

10 de diciembre de 2015, 11:18 comment-delete
Publicar un comentario

Related Posts Plugin for WordPress, Blogger...
Copyright 2011 INFORMATICUCHO.
Blogger Template by Noct.