Taller de Programacion Concurrente 1 de 17

18
Taller de Programación Concurrente con Visual Basic 2010 IESTP Arturo Sabroso Montoya TALLER DE PROGRAMACIÓN CONCURRENTE Julio Javier Larico Tipula [email protected] www.docentetic.com IESTP Arturo Sabroso Montoya [email protected] 1

description

Taller de programacion concurrente 1 de 17

Transcript of Taller de Programacion Concurrente 1 de 17

Page 1: Taller de Programacion Concurrente 1 de 17

Taller de Programación Concurrente con Visual Basic 2010

IESTPArturo Sabroso Montoya

TALLER DE PROGRAMACIÓN CONCURRENTE

Julio Javier Larico Tipula

[email protected]

www.docentetic.com

IESTP Arturo Sabroso Montoya [email protected]

1

Page 2: Taller de Programacion Concurrente 1 de 17

Taller de Programación Concurrente con Visual Basic 2010

IndiceSemana 01

ADO.NET.Modo ConectadoModo Desconectado

Semana 02MDI y Acceso a datosConexión usando el proveedor OLEDBConexión usando el proveedor SQLCLIENT

Semana 03Controlando los errores de conexiónTrabajando con eventos del objeto Connection

Semana 04Evaluación

Semana 05Conexión usando la seguridad integrada de WindowsConexión usando la seguridad SQL Server y Windows

Semana 06Conexión ODBCEnviando órdenes a una Base de DatosEnviando órdenes con parámetros

Semana 07Enviando órdenes con parámetros y creando objetos parameterAgrupar órdenes en una transacción

Semana 08Evaluación

Semana 09Enviar una orden que recupera un valorEnviar una orden que recupera un conjunto de registros y almacenarlo en un DataReader

Semana 10Recuperar datos y almacenarlo en un ComboBoxProcedimientos almacenados en el Servidor

Semana 11Trabajando con procedimientos almacenados (Input y Output)Procedimientos almacenados para insertar registros

Semana 12Evaluación

Semana 13Procedimientos almacenados para Eliminar RegistrosLlamar al procedimiento almacenado desde la aplicación Visual Basic

Semana 14Trabajando con procedimientos almacenados (Conjunto de registros)

Semana 15Desarrollo de una aplicación MDI con acceso a base de datos que realiza el mantenimiento de una tabla con Procedimientos almacenados

Semana 16Presentación de Proyecto Final. Aplicación Windows con base de datos

Semana 17 Evaluación 04

IESTP Arturo Sabroso Montoya [email protected]

2

Page 3: Taller de Programacion Concurrente 1 de 17

Taller de Programación Concurrente con Visual Basic 2010

PresentaciónEl presente manual servirá como complemento al curso de Taller de

Programación Concurrente. El manual ha sido dividido en 16 sesiones de aprendizaje

correspondiendo cada una a una clase teórica – práctica de 8 horas pedagógicas. En

cada sesión se ha contemplado: tema, objetivos específicos, actividades, contenido,

ejercicios resueltos y ejercicios propuestos. Las actividades son ejercicios desarrolladas

en clase guiados por el profesor del curso. Se espera que el alumno pueda probar estos

programas en la computadora. En la parte final, Sesión 15 y Sesión 16 se ha propuesto

dos casos prácticos para que el alumno desarrolle, aplicando todos los conocimientos

adquiridos durante su proceso de aprendizaje.

Julio Javier Larico Tipulawww.docentetic.com

[email protected]

IESTP Arturo Sabroso Montoya [email protected]

3

Page 4: Taller de Programacion Concurrente 1 de 17

Taller de Programación Concurrente con Visual Basic 2010

Introducción al Acceso a DatosSESSIONES

Sesión 1

OBJETIVOS ESPECIFICOS

Conocer las características de ADO.NET

Trabajar en Modo Conectado

Trabajar en Modo Desconectado

CONTENIDO

1. ADO.NET.

2. Características de ADO.NET

3. Arquitectura

4. Interfaces de acceso a base de datos

5. Acceso Conectado

6. Acceso Desconectado

7. El modo de funcionamiento típico de ADO.NET

ACTIVIDADES

Desarrollar ejercicios

IESTP Arturo Sabroso Montoya [email protected]

4

Page 5: Taller de Programacion Concurrente 1 de 17

Taller de Programación Concurrente con Visual Basic 2010

1. ADO.NETADO.NET es un conjunto de clases que exponen servicios de acceso a datos para el programador de .NET. ADO.NET ofrece abundancia de componentes para la creación de aplicaciones de uso compartido de datos distribuidas. Constituye una parte integral de .NET Framework y proporciona acceso a datos relacionales, XML y de aplicaciones. ADO.NET satisface diversas necesidades de desarrollo, como la creación de clientes de base de datos de aplicaciones para usuario y objetos empresariales de nivel medio que utilizan aplicaciones, herramientas, lenguajes o exploradores de Internet.

2. CARACTERISTICAS DE ADO.NETADO.NET proporciona acceso coherente a orígenes de datos como Microsoft SQL Server y XML, así como a orígenes de datos expuestos mediante OLE DB y ODBC. Las aplicaciones para usuarios que comparten datos pueden utilizar ADO.NET para conectar a estos orígenes de datos y recuperar, manipular y actualizar los datos contenidos.ADO.NET separa el acceso a datos de la manipulación de datos y crea componentes discretos que se pueden utilizar por separado o conjuntamente. ADO.NET incluye proveedores de datos de .NET Framework para conectarse a una base de datos, ejecutar comandos y recuperar resultados. Los resultados se procesan directamente o se colocan en un objeto DataSet de ADO.NET con el fin de exponerlos al usuario para un propósito específico, combinados con datos de varios orígenes, o de utilizarlos de forma remota entre niveles. El objeto DataSet de ADO.NET también puede utilizarse independientemente de un proveedor de datos de .NET Framework para administrar datos que son locales de la aplicación o que proceden de un origen XML.Las clases de ADO.NET se encuentran en el archivo System.Data.dll y están integradas con las clases de XML que se encuentran en el archivo System.Xml.dll. Cuando se compila un código que utiliza el espacio de nombres System.Data, es necesario hacer referencia a los archivos System.Data.dll y System.Xml.dll. 3. ARQUITECTURA ADO.NETEl funcionamiento de ADO.NET se basa esencialmente en utilizar los siguientes componentes:

IESTP Arturo Sabroso Montoya [email protected]

5

Page 6: Taller de Programacion Concurrente 1 de 17

Taller de Programación Concurrente con Visual Basic 2010

Data Provider (proveedor de datos)Proporciona un acceso uniforme a conjuntos de datos. Su papel el similar al de un controlador ODBC o JDBC.

DataSetEl componente más importante, puede almacenar datos provenientes de múltiples consultas (esto es, múltiples tablas).

DataAdapterSirve de enlace entre el contenedor de conjuntos de datos (DataSet) y la base de datos (Data Provider).

Los componentes anteriores se completan con DataReader (para realizar eficientemente lecturas de grandes cantidades de datos que no caben en memoria), DataRelation (la forma de establecer una reunión entre dos tablas), Connection (utilizada por DataAdapter para conectarse a la base de datos) y Command (que permite especificar las órdenes, generalmente en SQL, que nos permiten consultar y modificar el contenido de la base de datos: select, insert, delete y update).Un proveedor de datos debe proporcionar una implementación de Connection, Command, DataAdapter y DataReader.

4. INTERFACES DE ACCESO A BASES DE DATOSEvolución histórica de los estándares propuestos por Microsoft:

1. ODBC (Open Database Connectivity): API estándar ampliamente utilizado, disponible para múltiples DBMSs, utiliza SQL para acceder a los datos.

2. DAO (Data Access Objects): Interfaz para programar con bases de datos JET/ISAM, utiliza automatización OLE y ActiveX.

3. RDO (Remote Data Objects): Fuertemente acoplado a ODBC, orientado al desarrollo de aplicaciones cliente/servidor.

4. OLE DB: Construido sobre COM, permite acceder a bases de datos tanto relacionales como no relacionales (no está restringido a SQL). Se puede emplear con controladores ODBC y proporciona un interfaz a bajo nivel en C++.

5. ADO (ActiveX Data Objects): Ofrece un interfaz orientado a objetos y proporciona un modelo de programación para OLE DB accesible desde lenguajes distintos a C++ (p.ej. Visual Basic).

ADO .NET es una colección de clases, interfaces, estructuras y tipos enumerados que permiten acceder a los datos almacenados en una base de datos desde la plataforma .NET. Si bien se puede considerar una versión mejorada de ADO, no comparte con éste su jerarquía de clases (aunque sí su funcionalidad).ADO .NET combina las capas ADO y OLE DB en una única capa de proveedores (managed providers). Cada proveedor contiene un conjunto de clases que implementan interfaces comunes para permitir el acceso uniforme a distintas fuentes de datos.

IESTP Arturo Sabroso Montoya [email protected]

6

Page 7: Taller de Programacion Concurrente 1 de 17

Taller de Programación Concurrente con Visual Basic 2010

ADO .NET usa XML. De hecho, los conjuntos de datos se almacenan internamente en XML, en vez de almacenarse en binario como sucedía en ADO. Al estar los datos almacenados en XML, se simplifica el acceso a los datos a través de HTTPCon ADO .NET se puede acceder a los datos de dos formas distintas:

5. ACCESO CONECTADOAcceso sólo de lectura con cursores unidireccionales ("firehose cursors"). La aplicación realiza una consulta y lee los datos conforme los va procesando con la ayuda de un objeto DataReader.

6. ACCESO DESCONECTADOLa aplicación ejecuta la consulta y almacena los resultados de la misma para procesarlos después accediendo a un objeto de tipo DataSet. De esta forma, se minimiza el tiempo que permanece abierta la conexión con la base de datos.Al proporcionar conjuntos de datos de forma desconectada, se utilizan mejor los recursos de los servidores y se pueden construir sistemas más escalables que con ADO (que mantenía abierta la conexión con la base de datos la mayor parte del tiempo). Este enfoque resulta más adecuado en sistemas distribuidos como Internet.

7. EL MODO DE FUNCIONAMIENTO TÍPICO DE ADO.NET1. Se crean un objeto Connection especificando la cadena de conexión.2. Se crea un DataAdapter.3. Se crea un objeto Command asociado al DataAdapter, con la conexión adecuada

y la sentencia SQL que haya de ejecutarse.4. Se crea un DataSet donde almacenar los datos.5. Se abre la conexión.6. Se rellena el DataSet con datos a través del DataAdapter.7. Se cierra la conexión.8. Se trabaja con los datos almacenados en el DataSet.9. Como los conjuntos de datos se almacenan en memoria y trabaja con ellos de

forma desconectada, cuando hagamos cambios sobre ellos (inserciones, borrados o actualizaciones) debemos actualizar el contenido de la base de datos llamando al método Update del DataAdapter y, posteriormente, confirmar los cambios realizados en el DataSet (con AcceptChanges) o deshacerlos (con RejectChanges).

8. APLICACIÓN PRÁCTICA. MODELO DE ACCESO A DATOS CONECTADOAplicación 01Este proyecto demuestra el uso simple de un objeto sqlDataAdapter, se leen los código de los pedidos desde la tabla Pedidos y se mostraran en un control ListBoxProcedimiento

1. Inicie Visual Studio2. Haga clic en Archivo,

Nuevo Proyecto, Windows3. Nombre: Aplicacion014. Para crear el proyecto, haga

clic en Ok

IESTP Arturo Sabroso Montoya [email protected]

7

Page 8: Taller de Programacion Concurrente 1 de 17

Taller de Programación Concurrente con Visual Basic 2010

5. Agregar un control Label y cambiar su propiedad text a Aplicación en un entorno Conectado

6. Font: 147. Luego agregar un control ListBox

8. Proceda a grabar su proyecto haciendo clic en el botón (Guardar todo) y tendremos la siguiente ventana

9. Haga clic en Save para grabar nuestro proyecto10. Pasar a la vista código, haciendo doble clic sobre el Form111. Agregar el siguiente código en la parte superior

Imports System.Data.SqlClient

12. Agregar el siguiente código en la sección Load

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim cn As New SqlConnection("Data source=pcserver; initial catalog=Nwind; Integrated Security=SSPI") cn.Open() Dim cmdPedidos As New SqlCommand("Select * from Pedidos", cn) Dim drPedidos As SqlDataReader drPedidos = cmdPedidos.ExecuteReader While drPedidos.Read ListBox1.Items.Add(drPedidos.Item("IdPedido")) End While End Sub

IESTP Arturo Sabroso Montoya [email protected]

8

Page 9: Taller de Programacion Concurrente 1 de 17

Taller de Programación Concurrente con Visual Basic 2010

9. APLICACIÓN PRÁCTICA. MODELO DE ACCESO A DATOS DESCONECTADOAplicación 02Diseñar una aplicación que nos muestre en un datagrid la tabla Clientes de la base de datos Northwind, utilizando un dataset en un escenario desconectado.

Procedimiento1. Inicie Visual Studio2. Haga clic en Archivo, Nuevo Proyecto, Windows3. Nombre: Aplicacion024. Para crear el proyecto, haga clic en Ok

5. Agregar un control label y cambiar su propiedad Text: Conexión en un entorno desconectadoFont: 14

6. Agregar un control DataGridView

7. Hacer doble clic izquierdo sobre el formulario para pasar a la vista código8. Agregar el siguiente código

'1 importar el espacio de nombresImports System.Data.SqlClientPublic Class Form1 Private Sub Form1_Load() Handles MyBase.Load '2 Declarar una variable de conexion

IESTP Arturo Sabroso Montoya [email protected]

9

Page 10: Taller de Programacion Concurrente 1 de 17

Taller de Programación Concurrente con Visual Basic 2010

Dim cn As New SqlConnection("data source=PCSERVER; initial catalog=Nwind; integrated security=SSPI") '3 Declara y crea la instancia del objeto DataAdapter que contiene la instruccion SQL Dim da As New SqlDataAdapter("select * from clientes", cn) '4 Declara una variable DataSet para la tabla Clientes Dim dsClientes As New DataSet '5 Se recomienda limpiar al inicio el dataset dsClientes.Clear() '6 Se llena el dataset con el metodo Fill da.Fill(dsClientes, "Clientes") '7 Enlaza el datagrid con el dataset para mostrar los datos de la tabla DataGridView1.DataSource = dsClientes.Tables("Clientes") End SubEnd Class

IESTP Arturo Sabroso Montoya [email protected]

10

Page 11: Taller de Programacion Concurrente 1 de 17

Taller de Programación Concurrente con Visual Basic 2010

10 EJERCICIOS PROPUESTOS1. Desarrollar la siguiente aplicación Windows (AppPropuesto01) que muestre en

un control ListBox la información del campo IdCliente de la Tabla Pedidos

2. Desarrollar la siguiente aplicación Windows (AppPropuesto02) que muestre en un control ListBox la información del campo IdEmpleado, Apellidos, Nombre de la Tabla Empleados

11. PARA RECORDAR

a) El ADO.NET es un conjunto de componentes del software que pueden ser usados por los programadores para acceder a datos y a servicios de datos.

b) ADO.NET permite acceder a base de datos, desde Excel Hasta Oracle.c) Para conectar nuestra aplicación con una base de datos de Excel utilizaremos el

proveedor OLEDB.d) Para conectar nuestra aplicación con una base de datos de SQL Server

utilizaremos el proveedor de datos SQLClient.e) ADO.NET utiliza algunos objetos ADO, como Connection y Command, y

también agrega objetos nuevos. Algunos de los nuevos objetos clave de ADO.NET son DataSet, DataReader y DataAdapter.

f) El objeto DataAdapter es el objeto que se conecta a la base de datos a través del objeto Conecction para llenar el objeto DataSet.

g) El objeto DataSet basado en XML proporciona un modelo de programación coherente que funciona con todos los modelos de almacenamiento de datos: sin formato, relacional o jerárquico. Funciona sin tener 'conocimiento' del origen de los datos.

h) Aunque el objeto DataSet no tiene conocimiento del origen de sus datos, el proveedor administrado tiene información detallada y específica. La función del proveedor administrado es conectar, llenar y almacenar el objeto DataSet desde almacenes de datos (o viceversa). Los proveedores de datos OLE DB y SQL Server de .NET (System.Data.OleDb y System.Data.SqlClient) que forman parte de .Net Framework proporcionan cuatro objetos básicos: Command, Connection, DataReader y DataAdapter.

IESTP Arturo Sabroso Montoya [email protected]

11