Download Fundamentos del desarrollo con base de datos - UT-AGS
Document related concepts
Transcript
Fundamentos del desarrollo con base de datos Muchos de los que inician con el Delphi, comienzan con proyectos como el NotePad, otros con proyectos multimedia, pero todos estos proyectos no trabajan directamente con datos almacenados por los mismos usuarios. Con Delphi se pueden crear aplicaciones que opere justamente con diversos tipos de datos almacenados como bases de datos de escritorio como Paradox, FoxPro y Access, incluso con este lenguaje se pueden crear aplicaciones Cliente/Servidor e inclusive aplicaciones de Tres Capas (Modelo Distribuido). Acceso a datos con Delphi Delphi cuenta con un conjunto de más de 40 componentes de bases de datos preconstruidos y provee de un ambiente visual de programación que incluye su editor de código. El Wizard de formularios para base de datos en Delphi permite crear una aplicación de navegación de datos de una forma rápida y sencilla. No hay que correr Antes de que se empiece a realizar aplicaciones que usen las características para la conexión y manipulación de los datos se deben revisar algunos conceptos de base de datos. Cuando se piense en un DBMS se debe pensar generalmente en un tipo de almacenamiento en la computadora. En la actualidad en un sistema relacional para el manejo de los datos, para ello se toma en cuenta la cantidad de relaciones que puede manejar, y la posibilidad de regresar vistas sobre su operación, por lo que una definición sencilla de base de datos radica en que esta es una colección de datos relacionados de forma homogénea. Inicializando con una base de datos nueva! Comience el MS. Access y cree una base de datos nueva llamada “AboutDelphi.mdb” Cree tres tablas desde vista de diseño: Aplicaciones, Autores y Tipos. La estructura de cada una de las tablas es la siguiente: Aplicaciones: Contiene la descripción de cada una de las aplicaciones desarrolladas, los campos son: Nombre, Descripción, Autor, Tipo, Tamaño, Costo, Actualizacion, e Imagen. Nombre, Descripción, Autor y Tipo son de tipo texto de 50 caracteres, el campo de Tamaño es tipo Número (simple) usado para almacenar la cantidad de KB, el campo de Costo es de tipo moneda, Actualización es un campo de tipo Fecha/Hora, el campo de Imagen es del tipo Objeto OLE debido a que almacenará (de forma opcional) una imagen de la aplicación. El campo nombre es la Llave primaria. Tabla de Autores: contiene los campos de: NombreAutor, Email, Web. Todos los campos son caracteres de 50 espacios. Indique que el campo NombreAutor es la clave primaria. La tabla de Tipos solo contiene un Campo llamado NombreTipo el cual será llave primaria, esta tabla se usará para almacenar el tipo de aplicación: (Graficos, Multimedia, Base de datos, ...) Establezca las relaciones entre las tablas. Ambas relaciones deben establecer la integridad referencial imponiendo la actualización en cascada. La información de la base de datos. En la tabla tipos agregue los siguientes registros: Juego Base de Datos Internet Gráfico Estos valores se usarán para definir alguna aplicación. Agregue un registro en la tabla de autores: 'Master Delphi', 'delphi@utags.edu.mx', 'http://materias.utags.edu.mx/delphi' Finalmente agregue un registro en la tabla de Aplicaciones 'Zoom', 'Zooming the Destop', 'Master Delphi', 'Gráfico', 10, 0, 02/20/2001; el campo de imagen permanecerá vacío Conectando a la Base de Datos... ¿ADO o BDE? Con Delphi se puede establecer conexión a diversos tipos de base de datos, locales o cliente/servidor (remote Server). Las base de datos son almacenadas en el disco local o bien en la misma LAN. Las bases de datos remotas usualmente residen en una maquina remota. Algunos tipos de bases de datos locales son: Paradox, Dbase, FoxPro, Ms Access, entre otros, los DBMS remotos pueden ser como el MS SQL SERVER, Interbase, Oracle. Una base de datos local es una base de datos en la cual cualquier cambio, como la edición de datos la inserción de registros o el borrado de los mismo ocurren inmediatamente, estas bases de datos locales estan limitadas en la cantidad de tablas que pueden almacenar así como la cantidad de registros por tabla, más aún en la cantidad de usuarios que se pueden conectar de forma concurrente. Cuando se escriben aplicaciones con base de datos en Delphi, se necesita el uso de algunos motores para el acceso a los datos almacenados. Los motores de las bases de datos permiten la concentración en que datos se desean accesar, instanciar o como accesarlos. Desde la primera versión de Delphi se provee de desarrollo a BD. con el BDE (Borland Data Base Engine), desde la versión 5 del Delphi se da soporte a Microsoft ADO. BDE es una para comun de acceso para todos los productos de Bolrand, incuyendo Delphi y C++ Builder. El BDE consiste en una colección de DLLs y de utilierias. La belleza del BDE es el hecho de que todas las manipulaciones de los datos son consideradas transparentes para el desarrollador. El BDE trabaja con un conjunto de controladores (drivers) que habilitan la aplicacion para comunicarse con diversos tipos de bases de datos. Estos controladores traducen los comandos de alto nivel de la base de datos en comandos especificos para el motor indicado de la base de datos como Paradox, DBase, MS Access o cualquier ODBC. La API BDE consiste en más de 200 procedimientos y funciones que son disponibles a través de la unidad BDE. Afortunadamente nunca se llamará a cualquiera de estas rutinas de forma directa, Instanciela, use el BDE a través de la VCL con el Data Access Components, las cuales son encontradas en la paleta de Data Access, para acceder a una base de datos particular desde una aplicacion solo se necesita conocer el alias de la base de datos y se tendrá acceso a toda la base de datos. El alias es establecido desde el Administrador del BDE especificando los parametros del manejador y la ubicación de la base de datos. El BDE trabaja con un conjunto de controladores, usados para accesar a una basta variedad de fuentes de datos. Los controladores nativos incluyen Paradox, dBase, MsAccess y Texto Ascii. Las aplicaciones que usan el BDE para accesar a las bases de datos requieren que se distribuya el BDE la aplicacion. Cuando se desarrolle el BDE en una aplicación, se debe usar una instalación certificada de Borland. ADO es un conjunto de componentes COM (DLLs) que permiten el acceso a base de datos como manejo de correo electronico, hasta archivos de sistema. Las aplicaciones que se crean con ADO no requieren de BDE. Para accesar a cualquier tipo de base de datos con ADO se necesita contar con las librerías ADO/OLE BD. La mayoria de las cosas que se requieren para trabajar con ADO probablemente se encuentran ya instaladas en la computadora, los archivos son distribuidos por Microsoft como parte de sus sistema operativo. El MDAC (Microsoft Data Access Components) es la tecnología que permite habilitar el acceso universal a los datos. Estos incluyen ActiveX Data Objects (ADO), OLE, DB, y Conectividad Abierta a Base de DAtos (ODBC). Objetos ADO. El modelo de programación ADO es construido alrededor de varios objetos que permiten la accesibilidad a todos los tipos de fuentes de datos, estos objetos proveen la funcionalidad de conectarse a la fuente de datos, realizar Queries, actualizar registrosm reportar errores, etc. Delphu, a través de varios componentes de la VCL provee de componentes que cubren el acceso a estos objetos, algunos de los objetos ADO trabajan con: El objeto conexión (Connection) realiza la conexión a los datos con cadenas de conexión, en el BDE una conexión es una combinación de Base de Datos y una sesión de componentes. El objeto command (Command) habilita como operar en la fuente de datos, representa un comando que puede ser procesado como agregar, borrar, preguntar o actualizar los datos en una base de datos. El objeto RecordSet (RecordSet) es el resultado de una comando query. Se puede pensar que un recordSet como un componente table o Query. Cadaa fila que el recordSet regresa consiste en un objeto con multiples campos. Inicie Delphi, esto abrirá una nueva aplicación con una forma en blanco En orden para habilitar el acceso a los datos en una base de datos de access con ADO y Delphi, se deben agregar minimo tres componentes para el acceso a datos al proyecto: Primero, el DBGrid situado en la paleta de Data Controls, usado para navegar a través de los registros retribuidos por una tabla o por un query. Segundo, el DataSource (paleta - Data Access) utilizado para establecer el enlace entre el dataset y el DBGrid en una forma que habilita el despliegue, la navegación, la edición sobre el dataset. Finalmente el ADOTable (paleta ADO) que representa una tabla devuelta desde un ADO Data Store. Dibuje todos ellos en una forma. Permita el nombrado por defecto. La forma deberá tener una apariencia parecida a: Si se ejecuta la aplicación ahora, nada es desplegado en el GRID, debido a que no se ha realizado la conexión entre los componetes ni se ha conectado a la base de datos. El único componente visible es el Grid, el resto son componentes no visibles para el usuario. Enlace entre componentes Para poder desplegar datos desde la basem se tiene que enlazar los tres componentes juntos, usando el Inspector de Objetos (Object Inspector), establezca lo siguiente: BDGrid1.DataSource = DataSource1 DataSource1.DataSet = ADOTable1 Se ha llegado a la parte dura, para establecer la comunicación se debe construir las cadenas de conexión (ConnectionString) Esta cadena indica donde esta fisicamente la base de datos almacenada y como se accesará a ella. cuando se dé doble Click en la propiedad ConnectionString del ADOTable se abre el siguiente dialogo: Cuando se construye un string de conexión se tienen dos alternativas: Usar un .UDL (Data Link File) o construir una cadena a mano. Presione el botón "Build" - Este control presenta cuatro páginas, el PROVEEDOR que permite indicar el proveedor de datos seleccione "Microsoft Jet 4.0 OLE DB Provider". En el botón de siguiente o enviará a la página dos que indica la conexión, navegue y ubique la base de datos AboutDelphi.mdb, presione el botón de probar la conexión y verifique que sea correcta. Deje las otras páginas como están. Finalmente presione ACEPTAR y cierre el dialogo de enlace de datos. La cadena de conexión es almacenada en el campo ConnectionString del componente ADTTable La conexión debe observarse similar a: Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Documents and Settings\Alumno\Escritorio\bd_access\AboutDelphi.mdb; Persist Security Info=False Para finzalizar, se debe establecer el nombre de la tabla que será accesada por el ADOTable, para ello use el Object Inspector. ADOTable1.TableName = Aplicaciones Si se desea ver los datos solo se debe establecer la propiedad Active del ADOTAble en Verdadero (True). Si se han realizado todos los pasos se podrá visualizar un registro de la BD.