Sistemas empresariales 05

34
OPERACIONES CONECTADAS A UN ORIGEN DE DATOS Ing. Guillermo Raúl Reyes Mendo E-mail: [email protected]

description

Operaciones Conectadas a un Origen de Datos

Transcript of Sistemas empresariales 05

Page 1: Sistemas empresariales   05

OPERACIONES

CONECTADAS A UN ORIGEN

DE DATOS

Ing. Guillermo Raúl Reyes MendoE-mail: [email protected]

Page 2: Sistemas empresariales   05

• Al finalizar la unidad, el alumno realiza operaciones de consulta y actualización de datos en un entorno de aplicaciones Windows .NET la cual se encuentra conectado a un origen de datos, utilizando librerías ADO.NET

Logros de la Unidad

de Aprendizaj

e

Page 3: Sistemas empresariales   05

Agenda de la clase:

Introducción a ADO.NET

* Arquitectura del ADO.NET

* Proveedores de ADO:NET.

* Operaciones de Consulta de Datos

Recuperación de Datos

* Consulta de datos: clase DataAdapter.

* Consultas SQL o procedimiento almacenado.

* Manejo de parámetros en el proceso de la consulta.

Manipulación de Datos

* Actualizando datos: clase Command.

* Actualizar datos SQL ejecutando Proc. almacenados

* Manejo de parámetros en el proceso de actualización

Page 4: Sistemas empresariales   05

• Los alumnos diseñan formularios que manejan la conexión y operaciones de consulta a un origen de datos desde la aplicación Visual Studio .NET

• Los alumnos diseñan formularios que manejan la conexión y operaciones de actualización de datos a un origen de datos desde la aplicación Visual Studio .NET

Actividades Propuestas

Page 5: Sistemas empresariales   05

INTRODUCCION A ADO.NET.

ADO.NET responde a las siglas de Microsoft ActiveX Data Objects de la plataforma .NET, y es una mejora respecto a la librería ADO de la versión anterior.

La tecnología ADO.NET está basada en un nuevo modelo de componentes en la que las clases de acceso a datos y las clases contenedores forman parte del marco de trabajo .NET, y está pensado para interoperar con otros componentes, aplicaciones, etc., gracias al uso de XML y soportar estándares como HTTP, XML, SOAP

Page 6: Sistemas empresariales   05

Ado.NET

Evolución del Modelo de datos ADO

Integrado en la Plataforma .NET Framework- Sistema de Clases integrado en los espacios de Nombres .NEt

Mas Flexible- trabaja con modelos multitabla desconectados)

Permite Escalabilidad

Orientado a la arquitecturas Multinivel

6

Page 7: Sistemas empresariales   05

7

Ado.NET

Page 8: Sistemas empresariales   05

• ADO.NET es el modelo de acceso a datos para las aplicaciones basadas en .NET

• Se puede utilizar para acceder a sistemas de base de datos relacionales. Ejemplos:

– SQL Server, Oracle, etc.

• Muchas otras fuentes de datos (para las cuales existe un proveedor OLE DB u ODBC)

• Soporte intrínseco para XML

• Programación Orientada a Componentes

Ado.NET

Page 9: Sistemas empresariales   05

• ADO trabaja bien, pero:

– Necesita COM y Windows

– Los recordsets no viajan bien a través de Internet

• ADO.NET resuelve estos problemas:

– Utiliza XML (a bajo nivel) para realizar el transporte de datos

– XML no tiene requisitos específicos de runtime/transporte

• No se necesita un código especial para hacer el marshaling a través de Internet

• ADO .NET, una nueva mentalidad:

– Entorno desconectado

– Todo el transporte de datos utiliza XML

Page 10: Sistemas empresariales   05

Evolución

• ODBC (Open DataBase Connectivity)

– Interoperatibilidad con amplio rango de SGBD

– API acceso ampliamente aceptada

– Usa SQL como lenguaje de acceso a datos

• DAO (Data Access Objects)

– Interfaz de programación para bases de datos JET/ISAM (e.g.

– MS Access)

• RDO (Remote Data Objects)

– Estrechamente ligado a ODBC

– 2rientado a aplicaciones cliente/servidor

• OLE DB (Object Linking and Embedding for Databases)

– No restringido a acceso a datos relacionales

– No limitado a SQL como lenguaje de recuperación de datos

– Tecnología desarrollada por Microsoft

– Construido sobre COM (Component Object Model)

– Proporciona una interfaz a bajo nivel en C++

Page 11: Sistemas empresariales   05

Plataforma .Net

Page 12: Sistemas empresariales   05

Arquitectura Framework.NET

Page 13: Sistemas empresariales   05

Componentes

Page 14: Sistemas empresariales   05

Dos Componentes

• Proveedores de datos– Proporcionar conexión con las bases de datos

– Manipulación de Datos

– Acceso rápido en avance de solo lectura

• Data Set– Componente Central de la Arquitectura

– Acceso a datos y su manejo independiente del origen

• Entre ambos se incluyen:– Connection, Command, DataReader y DataAdapter

Page 15: Sistemas empresariales   05

Arquitectura

Page 16: Sistemas empresariales   05

Proveedores de datos.NET Framework

• Los proveedores de datos .NET Framework son componentes diseñados explícitamente para

la manipulación de datos y el acceso rápido a datos de solo lectura y solo avance.

– Connection

• Proporciona conectividad a un origen de datos.

– Command

• Permite tener acceso a comandos de base de datos para devolver datos, modificar datos,

ejecutar procedimientos almacenados y enviar o recuperar información sobre parámetros.

– DataReader

• Proporciona un flujo de datos de alto rendimiento desde el origen de datos.

– DataAdapter

• Proporciona el puente entre el objeto DataSet y el origen de datos.

• utiliza objetos Command para ejecutar comandos SQL en el origen de datos tanto para

cargar DataSet con datos y reconciliar en el origen de datos los cambios aplicados a los

datos incluidos en el DataSet.

Page 17: Sistemas empresariales   05

DataSet

• El DataSet de ADO.NET es el componente central de la arquitectura sin conexión de ADO.NET.

• El DataSet está expresamente diseñado para el acceso a datos independientemente del origen de datos.

• Como resultado, se puede utilizar con múltiples y distintos orígenes de datos, con datos XML o para administrar datos locales de la aplicación.

• El DataSet contiene una colección de uno o más objetos DataTable formados por filas y columnas de datos, así como información sobre claves principales, claves externas, restricciones y relaciones relativa a los datos incluidos en los objetos DataTable.

Page 18: Sistemas empresariales   05

Conceptos Básicos

• Modelo de objetos

– Objetos de System.Data

– Proveedores de acceso a datos .NET

• Jerarquía de espacio de nombres (namespace)

– Organiza el modelo de objetos

– Incluye:

• System.Data

• System.Data.Common

• System.Data.OleDb

• System.Data.SqlClient

• System.Data.SqlTypes

Page 19: Sistemas empresariales   05

ADO.NET: Connection

OleDbConnection/SQLConnection

• Representa la sesión contra la BD

• Utilizado por objetos Data Adapter y Command para recuperar/actualizar

• Inicia las transacciones

– Connection.BeginTransaction() devuelve un objeto Transaction

– xxxTransaction

• Un comando se enlista en una transacción

• Isolation Level

• Commit() / Rollback()

• Configuración del pool de conexionesen el connection string

Page 20: Sistemas empresariales   05

ADO.NET: Command

OleDbCommand/SQLCommand

Representa Transact-SQL o procedimientos almacenados

Devuelve un resultset (ExecuteReader), un valor (ExecuteScalar), o ejecuta sentencias de modificación (ExecuteNonQuery)

Generación automática con el objeto CommandBuilder

Page 21: Sistemas empresariales   05

ADO.NET: DataReader

OleDbDataReader/SQLDataReader

Stream forward-only read-only

Utilizado por el DataAdapter

Muy rápido

Creado por un objeto Command (ExecuteReader)

Page 22: Sistemas empresariales   05

ADO.NET: DataAdapter

OleDbDataAdapter/SQLDataAdapter

• Representa un conjunto de Commands y una Connection

• Puente entre el DataSet y la BD

• Lee y actualiza la BD:– SelectCommand,

– UpdateCommand,

– InsertCommand

– DeleteCommand

Page 23: Sistemas empresariales   05

ADO.NET: DataAdapter

Page 24: Sistemas empresariales   05

ADO.NET: DataSet

• Objeto estrella en ADO.NET

• Representa una caché de datos en memoria

• Contiene DataTables

• Lee y escribe datos y esquemas en XML

• Puede ser tipado o no tipado:

– Ambos heredan de la clase DataSet

– El tipado se apoya en un esquema XML (.XSD) para generar la clase

– El tipado tiene ventajas:

• Expone estructura como propiedades y métodos: Intellisense

• Recoge la Primary key

Page 25: Sistemas empresariales   05

Otros Objetos

• DataTable

– Representa una tabla en memoria

– Lo rellena un DataAdapter o a mano

– Componente principal de los objetos DataSet y DataView

• DataView

– Vista personalizada de un objeto DataTable

– Filtros, ordenación, búsquedas …

• DataRelation

– Define relaciones entre tablas

– Utiliza columnas de un DataTable

Page 26: Sistemas empresariales   05

DataSet

Page 27: Sistemas empresariales   05

Elegir un DataReader oun DataSet

• La elección entre DataReader (vea Recuperar datos mediante DataReader) o un DataSet (vea Crear y utilizar DataSets), debe tener en cuenta el tipo de funcionalidad que su aplicación requiere.

• Usar un DataSet para hacer lo siguiente:

– Utilizar datos de forma remota entre un nivel y otro o desde un servicio Web XML.

– Interactuar con datos dinámicamente,

• por ejemplo para enlazar con un control de Windows Forms o para combinar y relacionar datos procedentes de varios orígenes.

– Almacenar datos en memoria caché localmente, dentro de su aplicación.

– Proporcionar una vista XML jerárquica de datos relacionales y utilizar herramientas como una transformación XSL o una consulta Xpath (XML Path Language) en sus datos.

– Realizar procesamientos exhaustivos de datos sin necesidad de tener una conexión abierta con el origen de datos, lo que libera la conexión para que la utilicen otros clientes.

• Se puede mejorar el rendimiento de su aplicación si utiliza el DataReader para devolver sus datos de sólo avance y de sólo lectura.

– al utilizar el DataReader puede mejorar el rendimiento porque no usará la memoria que utilizaría el DataSet,

– Evita el procesamiento necesario para crear y rellenar el contenido del DataSet.

Page 28: Sistemas empresariales   05

ADO.NET:Lecturas

Método Fill del objeto DataAdapter

Se utiliza el SelectCommand del DataAdapter

Inserta/actualiza datos del DataSet- Si la tabla existe, actualiza datos

- Si no existe, crea y rellena la tabla

- Una tabla por cada resultset

Mantiene la conexión en su estado original

Page 29: Sistemas empresariales   05

ADO.NET:Actualizaciones

• La funcionalidad en ADO es implícita. Recordset= caja negra.

– Ejemplo: UpdateBatch

• En ADO.NET: Se crea un modelo más explícito y transparente.

– InsertCommand,

– UpdateCommand,

– DeleteCommand

– Eventos de Update

• CommandBuilder

– generación automática de los comandos de Insert, Update y Delete a partir del Select Command

Page 30: Sistemas empresariales   05

ADO.NET:Actualizaciones

DataAdapter.Update:- Analiza los cambios del DataSet

- Ejecuta los comandos Insert, Update y Delete necesarios

Refresca el DataSet

Orden de ejecución por defecto:- Insert, Update y Delete.

Page 31: Sistemas empresariales   05

ADO.NET: Enlace Controles (binding)

ADO.NET soporta enlazar (binding) DataSets a Windows Forms / Web Forms y sus controles

VStudio.NET incluye bastantes Ayudas (wizards) para hacer el enlace entre datosy controles

Page 32: Sistemas empresariales   05

Ejemplo

Page 33: Sistemas empresariales   05

“WCF Data Services”

Implementar servicios de datos en web o en una intranet.

Los datos se estructuran como entidades y relaciones de acuerdo a las especificaciones de Entity Data Model.

Los datos implementados en este modelo se pueden direccionar mediante el protocolo HTTP estándar.

Page 34: Sistemas empresariales   05