jueves, 15 de diciembre de 2011

MODELO DAO

MODELO DAO

 (Objetos de Acceso a Datos) viene definido como sigue:
Podemos utilizar el modelo de Objetos de Acceso a Datos para manipular bases de datos bien en el modelo nativo del motor de acceso JET (.MDB) o bien en cualquier otro formato ISAM (Fox, dBASE, Excel, Btrieve, Paradox, y Text).

El modelo de datos DAO (DbEngine, WorkSpace, Database y Recordset)
       DAO incorpora en sus librerías, todos los objetos necesarios para la creación, eliminación y modificación de una estructura de datos, incorporando además herramientas para la utilización de los datos almacenados. 
EJEMPLO
       
El objeto principal, de esta estructura jerarquizada de objetos, es DBEngine. Éste objeto, no puede ser elemento de ninguna colección, por lo que no pueden crearse objetos DBEngine adicionales.
       Con los métodos .OpenDatabase y .CreateWorkSpace, del objeto DbEngine, podemos crear llamadas a una base de datos; directamente para almacenar en el espacio de trabajo predefinido, o para añadir espacios de trabajos adicionales a la coleccion de objetos WorkSpace, donde abrir posteriormente la base de datos.
       Los valores devueltos por esos dos métodos son:
       .CreateWorkSpace:
       Añade un nuevo objeto de area de trabajo, a la coleccion de objetos WorsSpace, en el Objeto DbEngine.
       .OpenDatabase:
       Devuelve un objeto Database, que referencia una base de datos, en el área de trabajo predeterminada.
       Dim Db As Database
       Set Db = DbEngine.WorkSpace(0).OpenDatabase("Ruta del fichero de datos")
       O bien, de la siguiente manera para el área de trabajo predeterminada.
       Dim Db As Database
       Set Db = DbEngine.OpenDatabase("Ruta del fichero de datos")
       El objeto Database devuelto por el método .OpenDatabase, posee a su véz otras colecciones de objetos, pero siguiendo el ejemplo, de abrir una base de datos y mostrar registros, vamos a tratar solamente sobre el objeto Recordset (conjunto de registros).
       El método que vamos a usar para rellenar el objeto Recorset, con los registros es: .OpenRecordset, y es aquí donde vamos ejecutar una instrucción SQL para definir los registros que vamos a mostrar.
       Dim Rst As Recordset
       Set Rst = Db.OpenRecordset("SELECT * FROM Personas")
       Para realizar el ejemplo hay que crear una base de datos llamada MisDatos.mdb, que contenga una tabla denominada Personas, y guardarla en la misma carpeta donde vayamos a guardar el proyecto. Crear un proyecto nuevo. Añadir en Referencias una llamada a la libreria: Microsoft DAO 3.51 Object Library. En el formulario poner un control Data y un DbGrid, enlazado al Data. Añadir este código. Guardar el proyecto y ejecutar (F5).
       Se comienza con la declaración de los objetos que vamos a utilizar, uno para la base de datos y otro para el conjunto de registros a usar.
       Option Explicit
       Dim Db As Database
       Dim Rst As Recordset
       A continuación ejecutamos las instrucciones necesarias para cargar la base de datos y rellenar el recorset, asignándolo luego al control Data1.
       Private Sub Form_Load()
              Set Db = DbEngine.OpenDatabase(App.Path & "\MisDatos.mdb")
              Set Rst = Db.OpenRecordset("SELECT * FROM Personas")
              Data1.DatabaseName = App.Path & "\MisDatos.mdb"
              Set Data1.Recordset = Rst
       End Sub
       Con ésto tendremos los datos mostrados en la rejilla de datos.
       Otra forma de mostrar los registros obtenidos, sería registro a registro, en controles TextBox, éstos pueden estar enlazados al igual que el DbGrid a un control Data o mostrar los registro directamente desde el objeto Rst, mediante el siguiente código:
       Supongamos una matriz con controles TextBox, uno por cada campo que exista en la Tabla.
       Dim i As Long
       For i = 0 to Rst.Fields.Count - 1
              Text1(i).Text = Rst(i)
       Next i

No hay comentarios:

Publicar un comentario