23
Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web: http://www.enlace.net/ramirez2 E-mail: [email protected] Condiciones de uso de esta presentación, se encuentran en la página web anotada anteriormente. Las referencias de páginas son con respecto al título Aprenda Visual Basic Practicando, José Felipe Ramírez Ramírez, 2001, Pearson Educación, ISBN 970-26-0285-8.

Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

Embed Size (px)

Citation preview

Page 1: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

Capítulo 28

Manejo de bases de datos corporativas usando ADO

Educere – Cargando Tecnología en tu memoria.Web: http://www.enlace.net/ramirez2E-mail: [email protected] de uso de esta presentación, se encuentran en la página web anotada anteriormente. Las referencias de páginas son con respecto al título Aprenda Visual Basic Practicando, José Felipe Ramírez Ramírez, 2001, Pearson Educación, ISBN 970-26-0285-8.

Educere – Cargando Tecnología en tu memoria.Web: http://www.enlace.net/ramirez2E-mail: [email protected] de uso de esta presentación, se encuentran en la página web anotada anteriormente. Las referencias de páginas son con respecto al título Aprenda Visual Basic Practicando, José Felipe Ramírez Ramírez, 2001, Pearson Educación, ISBN 970-26-0285-8.

Page 2: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-01: 28-01: Condiciones que favorecen las bases de datos corporativasCondiciones que favorecen las bases de datos corporativas

Capítulo 28, págs. 690.

Se recomienda el uso de bases de datos corporativas cuando:Se recomienda el uso de bases de datos corporativas cuando:

1. Las bases de datos exceden la capacidad de su disco duro.

2. El número de transacciones que se ejecutan en su máquina demandan mucha capacidad del procesador.

3. Múltiples usuarios requieren tener acceso a la información de la base de datos, de muchas diferentes formas.

Elementos de Elementos de aplicación aplicación corporativacorporativa

Back-End:Back-End: Bases de datos de alto nivel (SQL Server, Oracle, Informix, etc.)

Front-End:Front-End: Visual Basic.

Page 3: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-02: Jerarquía ADO28-02: Jerarquía ADO

Capítulo 28, págs. 694.

Connection

Command

Recordset

ADODB

Para trabajar con al jerarquía ADO, se requiere agregar al proyecto la referencia Microsoft ActiveX Data Objects LibraryMicrosoft ActiveX Data Objects Library.

Page 4: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-03: 28-03: Conexión mediante ADO (Connection)Conexión mediante ADO (Connection)

Capítulo 28, págs. 695.

Propiedades Métodos

CursorLocation ConnectionTimeout ConnectionString

Open Cancel Close

Objeto ConnectionConnection:

CursorLocationCursorLocationadUseNoneadUseClientadUseServer

ConnectionStringConnectionStringdriverserveruidpwddatabase

Debe saber estos datos antesantes de intentar la conexión.

Page 5: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-04: Ejemplo de una conexión ADO28-04: Ejemplo de una conexión ADO

Capítulo 28, págs. 696.

Estableciendo conexión:Estableciendo conexión:

Dim cnnConexion As ADODB.ConnectionSet cnnConexion = New ADODB.Connection cnnConexion.ConnectionString = _“driver={SQL Server};server=AVBPDATA;uid=sa;pwd=saadm; database=Pubs"  cnnConexion.ConnectionTimeout = 30cnnConexion.Open 

Para cerrar la conexión abierta:Para cerrar la conexión abierta: cnnConexion.Close

Cadena de conexión

Page 6: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-05: Peticiones al servidor28-05: Peticiones al servidor mediante ADO (Command) mediante ADO (Command)

Capítulo 28, págs. 701, 702.

Objeto CommandCommand:

CommandTypeCommandTypeadCmdTextadCmdTableadCmdTableDirectadCmdStoredProcadCmdUnknownadCmdFileadExecuteNoRecords

Propiedades Métodos

ActiveConnection CommandType CommandTimeout CommandText

Execute Cancel

Page 7: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-06: Ejemplo de un comando ADO28-06: Ejemplo de un comando ADO

Capítulo 28, págs. 703, 704.

Dim cnnConexion As ADODB.ConnectionSet cnnConexion = New ADODB.Connection cnnConexion.ConnectionString = _“driver={SQL Server};server=AVBPDATA;uid=sa;pwd=saadm; database=Pubs"  cnnConexion.ConnectionTimeout = 30cnnConexion.OpencnnConexion.Open Dim cmdComando As ADODB.CommandSet cmdComando = New ADODB.Command cmdComando.ActiveConnection = cnnConexioncnnConexioncmdComando.CommandType = adCmdTextcmdComando.Timeout = 15cmdComando.CommandText = “GRANT SELECT ON authors TO UsrCons” cmdComando.Execute cnnConexion.Close 

ConexiónConexión

ComandoComandoEl comando se subordina y ejecuta en la conexión

Page 8: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-07: Cargando datos a un Recordset ADO28-07: Cargando datos a un Recordset ADO

Capítulo 28, págs. 707.

Algunos comandos retornan un conjunto de registros, en tal caso, deben tener como destino un objeto que los contenga: RecordsetRecordset.

Dim cnnConexion As ADODB.ConnectionSet cnnConexion = New ADODB.Connection cnnConexion.ConnectionString = _“driver={SQL Server};server=AVBPDATA;uid=sa;pwd=saadm; database=Pubs"  cnnConexion.ConnectionTimeout = 30cnnConexion.Open Dim cmdComando As ADODB.CommandSet cmdComando = New ADODB.Command cmdComando.CommandType = adCmdTextcmdComando.Timeout = 15cmdComando.CommandText = “SELECT * FROM authors”

Dim rstAutores As ADODB.RecordsetSet rstAutores = cmdComando.Execute() cnnConexion.Close

Al ejecutar el comando, el RecorsetRecorset ADO se alimenta de datos, y puede ser utilizado por objetos que requieren un RecordsetRecordset ADO, como el DataGridDataGrid.

Orden que retorna todos los registros de la tabla authors.

Page 9: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-08: Control ActiveX DataGrid 28-08: Control ActiveX DataGrid

Capítulo 28, págs. 704.

DataGridDataGrid (Microsoft DataGrid Control OLEDBMicrosoft DataGrid Control OLEDB) Permite ver el contenido de un RecordsetRecordset en forma de arreglo bidimensional .

Este control trabaja con RecordsetRecordset ADO, no con RecordsetRecordset DAO.

Propiedades Métodos Eventos AllowAddNew AllowUpdate AllowDelete ColumnHeaders RecordSource ScrollBars

Refresh

BeforeInsert BeforeDelete BeforeUpdate AfterInsert AfterDelete AfterUpdate HeadClick

Page 10: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-09: Lenguaje Estructurado de Consultas (SQL)28-09: Lenguaje Estructurado de Consultas (SQL)

Capítulo 28, págs. 709.

SELECT

Lista_camposLista_campos

FROM

Lista_TablasLista_Tablas

[WHERE

CondicionesCondiciones]

[GROUP BY Lista_Campos_GrupoLista_Campos_Grupo]

[ORDER BY Lista_Campos_OrdenLista_Campos_Orden]

 

Lista_CamposLista_Campos es la lista de campos que se desea obtener; de preferencia debe ser una representación calificada (tabla.campotabla.campo), en donde los campos se separan por comas. Si se desean todos los campos, Lista_CamposLista_Campos debe ser un asterísco (**).

Lista_TablasLista_Tablas es la lista de tablas de donde se sacarán los campos que haya referido en Lista_CamposLista_Campos.

Page 11: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-10: Ejemplos de consultas sencillas28-10: Ejemplos de consultas sencillas

Capítulo 28, págs. 710.

(1)(1) Consulta sencilla, todos los registros, todos los campos de una tabla Consulta sencilla, todos los registros, todos los campos de una tabla

SELECT * FROM authors

(2)(2) Consulta sencilla, todos los registros, sólo ciertos campos Consulta sencilla, todos los registros, sólo ciertos campos

SELECT authors.au_fname, authors.au_lname, authors.state FROM authors

(3)(3) Consulta sencilla, algunos registros, algunos campos Consulta sencilla, algunos registros, algunos campos

SELECT authors.au_fname, authors.au_lname, authors.state FROM authorsWHERE

authors.state = ‘CA’

Page 12: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-11: Ejemplos de consultas de 2 o más tablas28-11: Ejemplos de consultas de 2 o más tablas

Capítulo 28, págs. 711.

(1)(1) Consulta con campos de dos o más tablas Consulta con campos de dos o más tablas

SELECT titles.title, publishers.pub_name FROM authors,publishersWHERE

authors.pub_id = publishers.pub_id

Page 13: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-12: 28-12: Ejemplos de consultas con campos calculadosEjemplos de consultas con campos calculados

Capítulo 28, págs. 712.

(1) (1) Consulta con campos de dos o más tablas, que incluye Consulta con campos de dos o más tablas, que incluye campos calculadoscampos calculados

SELECTsales.ord_num,titles.title,sales.qty,titles.price,montotot = (sales.qty * titles.price)

FROMsales,titles

WHEREsales.title_id = titles.title_id

Page 14: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-13: 28-13: Ejemplos de consultas ordenadasEjemplos de consultas ordenadas

Capítulo 28, págs. 712.

(1) (1) Consulta con campos de dos o más tablas, de resultado Consulta con campos de dos o más tablas, de resultado ordenadoordenado

SELECT authors.au_fname, authors.au_lname, authors.state FROM authorsORDER BY

authors.au_lname

Page 15: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-14: 28-14: Ejemplos de consultas de resultado agrupadoEjemplos de consultas de resultado agrupado

Capítulo 28, págs. 712.

(1) (1) Consulta con campos de dos o más tablas, de resultado Consulta con campos de dos o más tablas, de resultado agrupadoagrupado

SELECTstores.stor_name

FROMstores,sales

WHEREstores.stor_id = sales.stor_id

GROUP BYstores.stor_name

Page 16: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-15: 28-15: Ejemplos de consultas con funciones agregadasEjemplos de consultas con funciones agregadas

Capítulo 28, págs. 713.

(1) (1) Consulta que utiliza funciones agregadasConsulta que utiliza funciones agregadas

SELECTstores.stor_name,venta = SUM(sales.qty * title.price)

FROMstores,sales,titles

WHEREsales.stor_id = stores.stor_idAND sales.title_id = titles.title_id

GROUP BYstores.stor_name

ORDER BYstores.stor_name

Page 17: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-16: 28-16: DML con ADO, búsqueda de registrosDML con ADO, búsqueda de registros

Capítulo 28, págs. 721.

CommandTypeCommandType que se debe utilizar: adCmdText

CommandTextCommandText:

SELECT * FROM tabla WHERE Condición

SELECT * FROM authors WHERE authors.au_id = ‘JFRR’

Ejemplo

Page 18: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-17: 28-17: DML con ADO, agregando registrosDML con ADO, agregando registros

Capítulo 28, págs. 721.

CommandTypeCommandType que se debe utilizar: adExecuteNoRecords

CommandTextCommandText:

Insert Tabla (Campos) VALUES (Valores)

INSERT authors (au_id, au_lname, au_fname, phone,

address, state)VALUES (‘JFRR’, ‘Ramírez’, ‘J.F.’,

Null, Null, ‘NL’)

Ejemplo

Page 19: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-18: 28-18: DML con ADO, modificando registrosDML con ADO, modificando registros

Capítulo 28, págs. 721.

CommandTypeCommandType que se debe utilizar: adExecuteNoRecords

CommandTextCommandText:

Update Tabla SET Campo = Valor [Filtro]

UPDATE authors SET authors.au_fname = ‘José Felipe’WHERE authors.au_id = ‘JFRR’

Ejemplo

¡PRECAUCIÓN!¡PRECAUCIÓN! Si omite la cláusula WHEREWHERE en UPDATEUPDATE, realizará una modificación masiva; el cambio aplicaría para todos los registros de la tabla.

Page 20: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-19: 28-19: DML con ADO, eliminando registrosDML con ADO, eliminando registros

Capítulo 28, págs. 721.

CommandTypeCommandType que se debe utilizar: adExecuteNoRecords

CommandTextCommandText:

Delete Tabla [Filtro]

DELETE authors WHERE authors.au_id = ‘JFRR’

Ejemplo

¡PRECAUCIÓN!¡PRECAUCIÓN! Si omite la cláusula WHEREWHERE en DELETEDELETE, realizará una eliminación masiva; se borrarían todos los registros de la tabla.

Page 21: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-20: 28-20: Tipos de orígenes de datos ODBCTipos de orígenes de datos ODBC

Capítulo 28, págs. 732, 733.

De UsuarioDe Usuario

De SistemaDe Sistema

De ArchivoDe Archivo

Se almacenan en Se almacenan en Registry de Registry de WindowsWindows

Se almacenan en Se almacenan en archivo de archivo de extensión DSNextensión DSN

Si no se desea utilizar cadena de conexión, puede definir enlaces a través de orígenes de datos (DSNDSN) a través de ODBC, en el Panel de Control de WindowsPanel de Control de Windows.

Instale MDAC 2.5 o superior, para evitar problemas inesperados de enlace.

Tipos de orígenes Tipos de orígenes ODBCODBC

Page 22: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

28-21: 28-21: Enlace ODBC, según el tipo de orígen de datosEnlace ODBC, según el tipo de orígen de datos

Capítulo 28, págs. 732, 733.

Si el origen es el Registry de Windows:Si el origen es el Registry de Windows:

ConnectionString = “DSN=ConnectionString = “DSN=NombreOrigenNombreOrigen””

ConnectionString = “DSN=AVBP_DSN”

Si el origen es un archivo DSN:Si el origen es un archivo DSN:

ConnectionString = “FILE NAME=ConnectionString = “FILE NAME=NombreArchivoDSNNombreArchivoDSN””

ConnectionString = “FILE NAME=C:\Ventas\AVBP_DSN.DSN”

En el caso de archivos DSN, debe asegurarse de que el archivo DSN se encuentre exactamente en la ruta señalada.

Page 23: Capítulo 28 Manejo de bases de datos corporativas usando ADO Educere – Cargando Tecnología en tu memoria. Web:

LaboratorioLaboratorio

28.01 Conexión a bases de datos corporativas usando ADO

28.02 Visualización de bases de datos corporativas utilizando DataGrid y ADO

28.03 Consultas SQL a bases de datos corporativas usando ADO

28.04 DML utilizando ADO: Actualización de una tabla en técnica RAR

Realice los siguientes ejercicios.Realice los siguientes ejercicios.

¡Para conocer más con relación a SQL ServerSQL Server, espere el libro Aprenda SQL Aprenda SQL Server PracticandoServer Practicando, del mismo autor!