Páginas

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