Your SlideShare is downloading. ×
0
ODBC Conexión a SQL Server con C#.NET a través de ODBC Orlando Alemán Ortiz Rayco J. Araña Rodríguez
Índice <ul><li>Introducción </li></ul><ul><li>Arquitectura </li></ul><ul><li>El Administrador de Orígenes  de Datos </li><...
Índice <ul><li>Introducción </li></ul><ul><li>Arquitectura </li></ul><ul><li>El Administrador de Orígenes de Datos </li></...
Introducción <ul><li>¿Qué es ODBC? </li></ul><ul><ul><li>ODBC => Open DataBase Connectivity </li></ul></ul><ul><ul><li>Es ...
Introducción <ul><li>¿Por qué ODBC? </li></ul><ul><ul><li>Necesidad de una capa de Abstracción </li></ul></ul><ul><ul><ul>...
Introducción <ul><li>Escenario antes de ODBC </li></ul>Aplicación1 Aplicación2 Aplicación3 API1 API2 API3 API2 API3 API2 A...
Introducción <ul><li>Escenario con ODBC </li></ul><ul><li>* NOTA: Esquema simplificado, en más detalle más adelante. </li>...
Índice <ul><li>Introducción </li></ul><ul><li>Arquitectura </li></ul><ul><li>El Administrador de Orígenes  de Datos </li><...
Arquitectura <ul><li>Basado en el modelo Cliente/Servidor </li></ul><ul><li>Componentes </li></ul><ul><ul><li>Aplicaciones...
Arquitectura Network/Communications Software Protocolo de Datos Orígenes de Datos Aplicación ODBC Driver Manager ODBC Driv...
Arquitectura … ODBC Driver Manager Oracle Aplicación ODBC Driver SQL Server SQL Server Driver Oracle Driver Access Driver ...
Índice <ul><li>Introducción </li></ul><ul><li>Arquitectura </li></ul><ul><li>El Administrador de Orígenes  de Datos </li><...
El Administrador de Orígenes de Datos <ul><li>Accesible desde el Panel de Control en Windows </li></ul><ul><li>Permite: </...
El Administrador de Orígenes de Datos <ul><li>demo </li></ul><ul><ul><li>Ver Administrador de Orígenes de Datos </li></ul>...
Índice <ul><li>Introducción </li></ul><ul><li>Arquitectura </li></ul><ul><li>El Administrador de Orígenes  de Datos </li><...
Conexión a Origen de Datos <ul><li>Clase  “OdbcConnection” </li></ul><ul><ul><li>ConnectionString </li></ul></ul><ul><ul><...
Conexión a Origen de Datos <ul><li>Clase  “OdbcConnection” </li></ul><ul><ul><li>Métodos  Open()  y  Close() , abren y cie...
Conexión a Origen de Datos <ul><li>demo </li></ul><ul><ul><li>Crear una aplicación que se conecte a SQL Server </li></ul><...
Índice <ul><li>Introducción </li></ul><ul><li>Arquitectura </li></ul><ul><li>El Administrador de Orígenes  de Datos </li><...
Ejecución de Consultas <ul><li>Clase  “OdbcCommand” </li></ul><ul><ul><li>Representa sentencias SQL y Llamadas a Procedimi...
Ejecución de Consultas <ul><li>Ejemplo consulta parametrizada </li></ul><ul><ul><li>“ SELECT * FROM mitabla WHERE campo1 =...
Ejecución de Consultas <ul><li>demo </li></ul><ul><ul><li>Modificar la aplicación anterior para lanzar una consulta SQL </...
Índice <ul><li>Introducción </li></ul><ul><li>Arquitectura </li></ul><ul><li>El Administrador de Orígenes  de Datos </li><...
Recuperación de Datos <ul><li>Clase  “OdbcDataReader” </li></ul><ul><ul><li>Permite leer un resultado de una consulta </li...
Recuperación de Datos <ul><li>Clase  “OdbcDataAdapter” </li></ul><ul><ul><li>Permite obtener todos los resultados de una c...
Recuperación de Datos <ul><li>Clase  “OdbcDataAdapter” </li></ul><ul><ul><li>Permite actualizar la base de datos con los c...
Recuperación de Datos <ul><li>demo </li></ul><ul><ul><li>Modificar el programa anterior para recuperar datos de diferentes...
Índice <ul><li>Introducción </li></ul><ul><li>Arquitectura </li></ul><ul><li>El Administrador de Orígenes  de Datos </li><...
Transacciones <ul><li>Clase “ OdbcTransaction” </li></ul><ul><ul><li>El objeto se obtiene de  OdbcConnection </li></ul></u...
Transacciones <ul><li>demo </li></ul><ul><ul><li>Modificar el programa anterior para lanzar una transacción </li></ul></ul...
Índice <ul><li>Introducción </li></ul><ul><li>Arquitectura </li></ul><ul><li>El Administrador de Orígenes  de Datos </li><...
Conclusión <ul><li>ODBC es una capa intermedia entre las aplicaciones y los SGBD que simplifica el acceso a datos a las ap...
Índice <ul><li>Introducción </li></ul><ul><li>Arquitectura </li></ul><ul><li>El Administrador de Orígenes  de Datos </li><...
Referencias <ul><li>Microsoft Library </li></ul><ul><ul><li>http://msdn.microsoft.com/library </li></ul></ul><ul><li>Insid...
Apéndice <ul><li>Enumeración  OdbcType  contiene los siguientes tipos: </li></ul><ul><ul><li>BigInt, Binary, Bit, Char, Da...
¿Preguntas?
Upcoming SlideShare
Loading in...5
×

Conexión a SQL Server con C#.NET a través de ODBC

11,527

Published on

Utilización de ODBC para realizar la conexión con SQL Server desde C# .NET

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
11,527
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
264
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Conexión a SQL Server con C#.NET a través de ODBC"

  1. 1. ODBC Conexión a SQL Server con C#.NET a través de ODBC Orlando Alemán Ortiz Rayco J. Araña Rodríguez
  2. 2. Índice <ul><li>Introducción </li></ul><ul><li>Arquitectura </li></ul><ul><li>El Administrador de Orígenes de Datos </li></ul><ul><li>Conexión a Origen de Datos </li></ul><ul><li>Ejecución de Consultas </li></ul><ul><li>Recuperación de Datos </li></ul><ul><li>Transacciones </li></ul><ul><li>Conclusión </li></ul><ul><li>Referencias </li></ul>
  3. 3. Índice <ul><li>Introducción </li></ul><ul><li>Arquitectura </li></ul><ul><li>El Administrador de Orígenes de Datos </li></ul><ul><li>Conexión a Origen de Datos </li></ul><ul><li>Ejecución de Consultas </li></ul><ul><li>Recuperación de Datos </li></ul><ul><li>Transacciones </li></ul><ul><li>Conclusión </li></ul><ul><li>Referencias </li></ul>
  4. 4. Introducción <ul><li>¿Qué es ODBC? </li></ul><ul><ul><li>ODBC => Open DataBase Connectivity </li></ul></ul><ul><ul><li>Es una API estándar para el acceso a datos tanto relacional como no relacional. </li></ul></ul><ul><ul><li>Independiente de Origen de Datos, del Lenguaje y del Sistema Operativo. </li></ul></ul><ul><ul><li>Creado inicialmente por Microsoft y adoptado por casi toda la industria (Oracle, Borland, Novell, etc.) </li></ul></ul>
  5. 5. Introducción <ul><li>¿Por qué ODBC? </li></ul><ul><ul><li>Necesidad de una capa de Abstracción </li></ul></ul><ul><ul><ul><li>No se modifica el Programa si cambia el SGBD. </li></ul></ul></ul><ul><ul><ul><li>No hay que hacer programas diferentes para acceder a diferentes SGBD. </li></ul></ul></ul><ul><ul><ul><ul><li>Un solo programa puede acceder a diferentes SGBD con el mismo código. </li></ul></ul></ul></ul><ul><ul><li>Necesidad de un acceso optimo a cualquier SGBD, tanto como si se tratara directamente con él. </li></ul></ul><ul><ul><li>Simplicidad en el uso. </li></ul></ul>
  6. 6. Introducción <ul><li>Escenario antes de ODBC </li></ul>Aplicación1 Aplicación2 Aplicación3 API1 API2 API3 API2 API3 API2 API3 API1 API1 SGBD1 SGBD2 SGBD3
  7. 7. Introducción <ul><li>Escenario con ODBC </li></ul><ul><li>* NOTA: Esquema simplificado, en más detalle más adelante. </li></ul>Aplicación1 Aplicación2 Aplicación3 ACCESO ODBC ACCESO ODBC ACCESO ODBC SGBD1 ODBC SGBD2 SGBD3
  8. 8. Índice <ul><li>Introducción </li></ul><ul><li>Arquitectura </li></ul><ul><li>El Administrador de Orígenes de Datos </li></ul><ul><li>Conexión a Origen de Datos </li></ul><ul><li>Ejecución de Consultas </li></ul><ul><li>Recuperación de Datos </li></ul><ul><li>Transacciones </li></ul><ul><li>Conclusión </li></ul><ul><li>Referencias </li></ul>
  9. 9. Arquitectura <ul><li>Basado en el modelo Cliente/Servidor </li></ul><ul><li>Componentes </li></ul><ul><ul><li>Aplicaciones </li></ul></ul><ul><ul><ul><li>Aplicaciones Clientes </li></ul></ul></ul><ul><ul><li>El Administrador de Drivers </li></ul></ul><ul><ul><ul><li>Carga y llama a los drivers </li></ul></ul></ul><ul><ul><li>Los Drivers </li></ul></ul><ul><ul><ul><li>Traductor entre ordenes ODBC y especificas del origen de datos. </li></ul></ul></ul><ul><ul><li>Los Orígenes de Datos </li></ul></ul><ul><ul><ul><li>¿¿¿Hace falta decir algo de esto???  </li></ul></ul></ul>
  10. 10. Arquitectura Network/Communications Software Protocolo de Datos Orígenes de Datos Aplicación ODBC Driver Manager ODBC Driver Cliente Aplicación ODBC Driver Manager ODBC Driver Cliente SGBD Servidor
  11. 11. Arquitectura … ODBC Driver Manager Oracle Aplicación ODBC Driver SQL Server SQL Server Driver Oracle Driver Access Driver Archivo Access
  12. 12. Índice <ul><li>Introducción </li></ul><ul><li>Arquitectura </li></ul><ul><li>El Administrador de Orígenes de Datos </li></ul><ul><li>Conexión a Origen de Datos </li></ul><ul><li>Ejecución de Consultas </li></ul><ul><li>Recuperación de Datos </li></ul><ul><li>Transacciones </li></ul><ul><li>Conclusión </li></ul><ul><li>Referencias </li></ul>
  13. 13. El Administrador de Orígenes de Datos <ul><li>Accesible desde el Panel de Control en Windows </li></ul><ul><li>Permite: </li></ul><ul><ul><li>Ver Drivers instalados </li></ul></ul><ul><ul><li>Añadir Orígenes de Datos </li></ul></ul><ul><ul><ul><li>Mapeándolos con un DSN (DataSource Name) </li></ul></ul></ul><ul><ul><ul><ul><li>DSN de Usuario: Solo visibles al usuario actual </li></ul></ul></ul></ul><ul><ul><ul><ul><li>DSN de Sistema: Visible a todos los usuarios del sistema </li></ul></ul></ul></ul><ul><ul><ul><ul><li>DSN de Archivo: Guarda la configuración en un archivo </li></ul></ul></ul></ul><ul><ul><li>Trazas </li></ul></ul><ul><ul><ul><li>Útil para depuración </li></ul></ul></ul><ul><ul><li>Agrupación de conexiones </li></ul></ul><ul><ul><ul><li>Permite reutilizar conexiones </li></ul></ul></ul>
  14. 14. El Administrador de Orígenes de Datos <ul><li>demo </li></ul><ul><ul><li>Ver Administrador de Orígenes de Datos </li></ul></ul><ul><ul><li>Agregar un origen de datos como DSN del sistema </li></ul></ul>
  15. 15. Índice <ul><li>Introducción </li></ul><ul><li>Arquitectura </li></ul><ul><li>El Administrador de Orígenes de Datos </li></ul><ul><li>Conexión a Origen de Datos </li></ul><ul><li>Ejecución de Consultas </li></ul><ul><li>Recuperación de Datos </li></ul><ul><li>Transacciones </li></ul><ul><li>Conclusión </li></ul><ul><li>Referencias </li></ul>
  16. 16. Conexión a Origen de Datos <ul><li>Clase “OdbcConnection” </li></ul><ul><ul><li>ConnectionString </li></ul></ul><ul><ul><ul><li>Se puede pasar en el constructor o a la propiedad con el mismo nombre. </li></ul></ul></ul><ul><ul><ul><li>Conexión a SQL Server con Usuario y Contraseña: </li></ul></ul></ul><ul><ul><ul><ul><li>“ Driver={SQL Server};Server=(local)NetSDK; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Database=Northwind;UID=MyUserName;PWD=MyPassword;” </li></ul></ul></ul></ul><ul><ul><ul><li>Conexión a SQL Server usando DSN: </li></ul></ul></ul><ul><ul><ul><ul><li>“ DSN=MyDataSource;” </li></ul></ul></ul></ul><ul><ul><ul><li>Conexión a SQL Server usando DSN de Archivo: </li></ul></ul></ul><ul><ul><ul><ul><li>“ FileDSN=MyFileDataSource;” </li></ul></ul></ul></ul>
  17. 17. Conexión a Origen de Datos <ul><li>Clase “OdbcConnection” </li></ul><ul><ul><li>Métodos Open() y Close() , abren y cierran la conexión respectivamente. </li></ul></ul>
  18. 18. Conexión a Origen de Datos <ul><li>demo </li></ul><ul><ul><li>Crear una aplicación que se conecte a SQL Server </li></ul></ul><ul><ul><li>Mostrar información que ofrece la clase OdbcConnection </li></ul></ul>
  19. 19. Índice <ul><li>Introducción </li></ul><ul><li>Arquitectura </li></ul><ul><li>El Administrador de Orígenes de Datos </li></ul><ul><li>Conexión a Origen de Datos </li></ul><ul><li>Ejecución de Consultas </li></ul><ul><li>Recuperación de Datos </li></ul><ul><li>Transacciones </li></ul><ul><li>Conclusión </li></ul><ul><li>Referencias </li></ul>
  20. 20. Ejecución de Consultas <ul><li>Clase “OdbcCommand” </li></ul><ul><ul><li>Representa sentencias SQL y Llamadas a Procedimiento Remoto a ejecutar en un Origen de Datos. </li></ul></ul><ul><ul><li>Método ExecuteNonQuery() </li></ul></ul><ul><ul><ul><li>Ejecuta sentencias que no devuelven filas (INSERT,…). </li></ul></ul></ul><ul><ul><ul><li>Devuelve el número de filas afectadas. </li></ul></ul></ul><ul><ul><li>Método ExecuteScalar() </li></ul></ul><ul><ul><ul><li>Devuelve la primera columna de la primera fila. </li></ul></ul></ul><ul><ul><li>Método ExecuteReader() </li></ul></ul><ul><ul><ul><li>Devuelve un objeto OdbcDataReader . </li></ul></ul></ul>
  21. 21. Ejecución de Consultas <ul><li>Ejemplo consulta parametrizada </li></ul><ul><ul><li>“ SELECT * FROM mitabla WHERE campo1 = ?” </li></ul></ul><ul><ul><li>Clase “OdbcParameter” </li></ul></ul><ul><ul><ul><li>Se añade a la colección de parámetros del OdbcCommand </li></ul></ul></ul><ul><ul><ul><li>Ej. OdbcParameter param = </li></ul></ul></ul><ul><ul><ul><li>new OdbcParameter(“@campo1”, OdbcType.NChar, 5); </li></ul></ul></ul><ul><ul><ul><li> param.Value = “ABCDE”; </li></ul></ul></ul><ul><li>Ejemplo llamada procedimiento remoto </li></ul><ul><ul><li>“ {CALL MiProcRem(?)}” </li></ul></ul><ul><ul><ul><li>Ej. OdbcParameter param = </li></ul></ul></ul><ul><ul><ul><ul><ul><li>New OdbcParameter(“@campo1”,OdbcType.NChar,5); </li></ul></ul></ul></ul></ul><ul><ul><ul><li>param.Value = “ABCDE”; </li></ul></ul></ul>
  22. 22. Ejecución de Consultas <ul><li>demo </li></ul><ul><ul><li>Modificar la aplicación anterior para lanzar una consulta SQL </li></ul></ul>
  23. 23. Índice <ul><li>Introducción </li></ul><ul><li>Arquitectura </li></ul><ul><li>El Administrador de Orígenes de Datos </li></ul><ul><li>Conexión a Origen de Datos </li></ul><ul><li>Ejecución de Consultas </li></ul><ul><li>Recuperación de Datos </li></ul><ul><li>Transacciones </li></ul><ul><li>Conclusión </li></ul><ul><li>Referencias </li></ul>
  24. 24. Recuperación de Datos <ul><li>Clase “OdbcDataReader” </li></ul><ul><ul><li>Permite leer un resultado de una consulta </li></ul></ul><ul><ul><li>Solo en dirección hacia delante y uno a uno </li></ul></ul><ul><ul><ul><li>Método Read() lee la siguiente fila </li></ul></ul></ul><ul><ul><ul><li>Item -> Indexador para acceder a los elementos de la fila por nombre y/o por posición </li></ul></ul></ul><ul><ul><ul><ul><li>Lo devuelve en un tipo genérico </li></ul></ul></ul></ul><ul><ul><ul><li>Diferentes métodos para obtener las columnas por posición y en su tipo </li></ul></ul></ul>
  25. 25. Recuperación de Datos <ul><li>Clase “OdbcDataAdapter” </li></ul><ul><ul><li>Permite obtener todos los resultados de una consulta. </li></ul></ul><ul><ul><li>Se almacena en un objeto DataSet </li></ul></ul><ul><ul><ul><li>DataSet es un objeto que almacena DataTable’s </li></ul></ul></ul><ul><ul><ul><li>Es capaz de representar relaciones, restricciones, etc. </li></ul></ul></ul><ul><ul><ul><li>Muy útil para trabajo Off-Line </li></ul></ul></ul><ul><ul><ul><li>Puede volcarse toda la información a XML y viceversa </li></ul></ul></ul>
  26. 26. Recuperación de Datos <ul><li>Clase “OdbcDataAdapter” </li></ul><ul><ul><li>Permite actualizar la base de datos con los cambios que se han producido en el DataSet </li></ul></ul><ul><ul><ul><li>De forma manual modificando las propiedades SelectCommand , InsertCommand , UpdateCommand y DeleteCommand </li></ul></ul></ul><ul><ul><ul><li>De forma automática con OdbcCommandBuilder , aunque solo para tablas simples </li></ul></ul></ul>
  27. 27. Recuperación de Datos <ul><li>demo </li></ul><ul><ul><li>Modificar el programa anterior para recuperar datos de diferentes formas </li></ul></ul><ul><ul><li>Llamar a un procedimiento remoto y recuperar los datos que devuelve </li></ul></ul>
  28. 28. Índice <ul><li>Introducción </li></ul><ul><li>Arquitectura </li></ul><ul><li>El Administrador de Orígenes de Datos </li></ul><ul><li>Conexión a Origen de Datos </li></ul><ul><li>Ejecución de Consultas </li></ul><ul><li>Recuperación de Datos </li></ul><ul><li>Transacciones </li></ul><ul><li>Conclusión </li></ul><ul><li>Referencias </li></ul>
  29. 29. Transacciones <ul><li>Clase “ OdbcTransaction” </li></ul><ul><ul><li>El objeto se obtiene de OdbcConnection </li></ul></ul><ul><ul><ul><li>Método BeginTransaction() </li></ul></ul></ul><ul><ul><ul><ul><li>Se le puede pasar el nivel de aislamiento, sino utiliza el por defecto del driver. </li></ul></ul></ul></ul><ul><ul><ul><li>Se le pasa una referencia al objeto OdbcCommand que haga las acciones de la transacción. </li></ul></ul></ul><ul><ul><ul><li>Métodos Commit() y Rollback() para aceptar o deshacer la transacción respectivamente. </li></ul></ul></ul>
  30. 30. Transacciones <ul><li>demo </li></ul><ul><ul><li>Modificar el programa anterior para lanzar una transacción </li></ul></ul><ul><ul><li>Hacer que la transacción falle y se llame a RollBack() </li></ul></ul>
  31. 31. Índice <ul><li>Introducción </li></ul><ul><li>Arquitectura </li></ul><ul><li>El Administrador de Orígenes de Datos </li></ul><ul><li>Conexión a Origen de Datos </li></ul><ul><li>Ejecución de Consultas </li></ul><ul><li>Recuperación de Datos </li></ul><ul><li>Transacciones </li></ul><ul><li>Conclusión </li></ul><ul><li>Referencias </li></ul>
  32. 32. Conclusión <ul><li>ODBC es una capa intermedia entre las aplicaciones y los SGBD que simplifica el acceso a datos a las aplicaciones. </li></ul><ul><li>Ya en desuso. </li></ul><ul><ul><li>Claro ejemplo, MS no lo incluye en la plataforma .NET, sino que lo deja como una librería externa, apostando más por OLEDB. </li></ul></ul><ul><li>El modelo de acceso a datos de la plataforma .NET (ADO.NET) basado en “Providers” simplifica el acceso a datos y lo hace muy intiutivo. </li></ul><ul><li>En .NET existe un “Provider” para SQL Server. </li></ul>
  33. 33. Índice <ul><li>Introducción </li></ul><ul><li>Arquitectura </li></ul><ul><li>El Administrador de Orígenes de Datos </li></ul><ul><li>Conexión a Origen de Datos </li></ul><ul><li>Ejecución de Consultas </li></ul><ul><li>Recuperación de Datos </li></ul><ul><li>Transacciones </li></ul><ul><li>Conclusión </li></ul><ul><li>Referencias </li></ul>
  34. 34. Referencias <ul><li>Microsoft Library </li></ul><ul><ul><li>http://msdn.microsoft.com/library </li></ul></ul><ul><li>Inside ODBC </li></ul><ul><ul><li>Ed. Microsoft Press </li></ul></ul><ul><ul><li>Autor: Kyle Geiger </li></ul></ul><ul><li>ODBC .NET Data Provider </li></ul><ul><ul><li>http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=6ccd8427-1017-4f33-a062-d165078e32b1 </li></ul></ul>
  35. 35. Apéndice <ul><li>Enumeración OdbcType contiene los siguientes tipos: </li></ul><ul><ul><li>BigInt, Binary, Bit, Char, Date, DateTime, Decimal, Double, Image, Int, NChar, NText, Numeric, NVarChar, Real, SmallDateTime, SmallInt, Text, Time, Timestamp, TinyInt, UniqueIdentifier, VarBinary, VarChar. </li></ul></ul>
  36. 36. ¿Preguntas?
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×