Upload
thera-regal
View
221
Download
1
Embed Size (px)
Citation preview
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.
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.
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.
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.
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
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
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
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.
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
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.
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’
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
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
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
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
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
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
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
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.
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.
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
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.
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!