Factoria de proveedores (Parte 2)

Anteriormente comentaba las bondades de la factoria de proveedores de Visual Basic a la hora de crear una aplicación fácilmente migrable entre distintos motores de bases de datos.

Aquí dejo un ejemplo de código (algo muy sencillito).

Imports System.Data.Common
 
Public Class identificacion
'CREO UN DATASET PARA RELLENARLO CON LA INFO DE LA TABLA
Dim dataset As DataSet = New DataSet
 
Private Sub identificacion_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'CREO El OBJETO FACTORIA E INDICO EL PROVEEDOR QUE VOY A USAR
Dim factoria As DbProviderFactory =
DbProviderFactories.GetFactory("System.Data.SqlClient")
 
'CREO EL CONEXIONBUILDER PARA PREPARAR LA CONEXION
Dim parametrosConexion As DbConnectionStringBuilder =
factoria.CreateConnectionStringBuilder
 
'PREPARO LA CADENA DE CONEXION
With parametrosConexion
.Add("Data Source", "localhost")
.Add("Initial Catalog", "unica_db")
.Add("Integrated Security", "SSPI")
End With
 
'CREO EL OBJETO DE CONEXION
Dim conexion As DbConnection = factoria.CreateConnection
 
'ESTABLEZCO LA CADENA DE CONEXION
conexion.ConnectionString = parametrosConexion.ConnectionString
 
'ABRO LA CONEXION
Try
'INTENTO LA CONEXION
conexion.Open()
Catch ex As Exception
'SI FALLA, MUESTRO UN MENSAJE Y CIERRO EL PROGRAMA
MessageBox.Show("Error en la conexión con la base de datos. Si el problema
persiste consulte con el Administrador del sistema", _
"Error en la conexión", MessageBoxButtons.OK,
MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
My.Forms.principal.Close()
Me.Close()
Exit Sub
End Try
 
'PREPARO UN ADAPTADOR PARA OBTENER LA TABLA DE USUARIOS
Dim adaptador As DbDataAdapter = factoria.CreateDataAdapter
 
'CREO UN COMANDO
Dim comando As DbCommand = conexion.CreateCommand
 
'CREO LA CONSULTA
comando.CommandText = "SELECT * FROM tbl_usuarios"
 
'ENLAZO EL ADAPTADOR AL COMANDO
adaptador.SelectCommand = comando
 
'RELLENO EL DATASET
dataset = New DataSet
adaptador.Fill(dataset, "tbl_usuarios")
End Sub
End Class

Este es el codigo de un formulario que accede a una base de datos Sql server. Como podeis ver, establezo los parametros de la conexión en las primeras lineas de programa.
Pues bien. Si decidiese cambiar el tipo de base de datos, por ejemplo a Access, sólo deberia cambiar esas primeras lineas.
En otras versiones, si quisiese hacerlo, tendria que cambiar el codigo de prácticamente todos los objetos que he creado que sirven para relacionarse con la base de datos (comando, dataAdapter, etc).
Espero que haya quedado un poco más claro.

Comparte:
  • Twitter
  • Digg
  • del.icio.us
  • Google Bookmarks
  • Facebook
  • LinkedIn
  • Meneame
  • BarraPunto
  • Netvibes
  • FriendFeed
  • MySpace
  • Reddit
  • TwitThis
  • Bitacoras.com
  • Technorati
  1. Aún no hay comentarios.

  1. Aún no hay enlaces.