miércoles, 16 de abril de 2014

Esquemas de Trabajo en ADO .NET



En esta última parte veremos las dos formas que existen para trabajar en ADO .NET, una es la forma conectada y la otra la forma desconectada, tal como explicamos a continuación.

  • Trabajando en Forma Conectada 
    • Definición 
Trabajar en forma conectada significa mantener siempre la conexión abierta para ejecutar cualquier instrucción contra el origen de datos. ADO .NET usa los objetos Connection, DataAdapter, Command y DataReader en forma conectada. 
    • Usos 
Este esquema de trabajo se usa en aplicaciones en línea o dinámicas, donde cualquier cambio sobre los datos deben registrarse inmediatamente sobre la Base de Datos. Entre algunos ejemplos de aplicaciones que usan este modelo tenemos: 
      • Sistema de Cajero Automático para Manejo de Cuentas en un Banco. 
      • Sistema de Ventas para un Super Mercado. 
      • Sistema de Matrícula para una Universidad. 
      • En general, cualquier Aplicación Windows. 
    • Ventajas 
Trabajar en forma conectada trae las siguientes ventajas: 
      • La información se actualiza en el instante en que se ejecuta la instrucción SQL, por tanto siempre se trabaja con los últimos datos. 
      • Velocidad de ejecución de las instrucciones por estar la conexión previamente abierta. 
    • Desventajas 
Trabajar en forma conectada tiene las siguientes desventajas: 
      • Consumo de memoria en el Servidor de Datos por estar la conexión siempre abierta. 
      • El número de Licencias es limitado por lo que las conexiones deben manejarse con cuidado para no exceder el límite. 
    • Modelo de Trabajo 
Para trabajar en forma conectada se puede seguir el siguiente modelo de trabajo o patrón: 
      • Crear un objeto de conexión mediante la clase Connection. 
Dim con As New SqlConnection ("cadena_conexión") 
      • Abrir la conexión usado el método Open del objeto Connection. 
con.Open( ) 
      • Crear un objeto comando mediante la clase Cornrnand. 
Dim cmd As New SqlCommand("", con) 
      • Para ejecutar un comando de selección que devuelva varios campos usar un objeto de tipo DataReader y ejecutar el comando con el método ExecuteReader. 
cmd.CommandText = "Select * From Tabla" 
Dim drd As SqlDa taReader = cmd. ExecuteReader 
      • Para ejecutar un comando de selección que devuelva un simple valor usar el método ExecuteScalar
cmd.CommandText = "Select Count(*) From Tabla" 
Dim Valor As Integer = cmd.ExecuteScalar 
      • Para ejecutar un comando de inserción, actualización o eliminación de registros usar el método ExecuteNonQuery
cmd.CommandText = "Insert | Update | Delete .." 
Dim RegistrosAfectados As Integer = cmd.ExecuteNonQuery 
      • Después de ejecutar los comandos o instrucciones SQL sobre el origen de datos cerrar la conexión mediante el método Close del objeto Connection. 
con.Close( ) 

  • Trabajando en Forma Desconectada 
    • Definición 
Trabajar en forma desconectada significa mantener siempre la conexión cerrada, ADO .NET se encarga de abrirla y cerrarla cada vez que desea ejecutar una instrucción sobre el origen de datos. ADO .NET usa el objeto DataSet para trabajar en forma desconectada. 
    • Usos 
Este esquema de trabajo se usa en aplicaciones estáticas o con mucha concurrencia, donde cualquier cambio sobre los datos deben registrarse localmente en el DataSet y después se envían los cambios por lotes. 
Entre algunos ejemplos de aplicaciones que usan este modelo tenemos: 
      • Sistema de Compras por Internet (Shopping Cart). 
      • Sistema de Registro de Horas de Empleados. 
      • Sistema de Cotizaciones. 
      • En general, cualquier Aplicación Web. 
    • Ventajas 
Trabajar en forma desconectada trae las siguientes ventajas: 
      • Reduce el consumo de memoria en el Servidor de Datos por estar la conexión cerrada. 
      • Es recomendada en entornos con alto número de usuarios concurrentes ya que maneja mejor las conexiones y por tanto las Licencias. 
    • Desventajas 
Trabajar en forma desconectada tiene las siguientes desventajas: 
      • La información no se actualiza en el instante en que se ejecuta la instrucción SQL, hay que actualizar por lotes para enviar cambios. 
      • El DataSet consume muchos recursos de memoria en el cliente, por tanto este debe tener espacio suficiente para almacenar datos y manejarlos localmente. 
    • Modelo de Trabajo 
Para trabajar en forma desconectada se puede seguir el siguiente modelo de trabajo o patrón: 
      • Crear un objeto de conexión mediante la clase Connection. 
Dim con As New SqlConnection ("cadena_conexión") 
      • Crear un objeto conjunto de comandos mediante la clase DataAdapter. 
Dim dap As New SqlDataAdapter ("Select * From Tabla", con) 
      • Crear un objeto DataSet que almacene los datos en el cliente. 
Dim dst As New DataSet()
      • Para ejecutar un comando de selección usar el método Fill del DataAdapter el cual creará una tabla con registros dentro del DataSet en el cliente.
dap.Fill (dst, "Tabla") 
      • Para insertar, actualizar o eliminar registros usar los métodos del objeto DataTable, los cuales localmente realizarán los cambios en el DataSet. 
Añadir: dst.Tables("Tabla").Rows.Add(Fila)
Eliminar: dst.Tables("Tabla"). Rows (indice).Delete 
      • Para enviar todos los cambios realizados hacia el servidor usar el método Update del DataAdapter, éste actualiza por lotes y envía todos los cambios al servidor. 
dap. Update (dst, "Tabla") 


Nota: Para enviar los cambios con Update debe haberse creado las instrucciones InsertCommand, UpdateCommand y DeleteCommand del DataAdapter de lo contrario generará una excepción.



 Espero haber ayudado en algo. Hasta la próxima oportunidad!





No hay comentarios:

Publicar un comentario en la entrada