jueves, 15 de diciembre de 2011

CONEXIONES CON DAO Y ADO

DAO
  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.


       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


ADO
Los que programaban con las interfaces para bases de datos DAO o RDO que venia con Visual Basic Enterprise, tendrán que cambiar a la nueva tecnología de acceso a datos que es ADO (ActiveX Data Objects). Actualmente ADO viene conjuntamente con el Option Pack de Windows NT 4, dentro del Option Pack están los instaladores para Windows 95, Windows NT WorkStation, Windows NT Server.
La nueva versión de Visual Basic (VB 6) trabajará con ADO naturalmente, por eso es importante comenzar todos los nuevos proyectos con esta interface. También la nueva versión de SQL Server (SQL Server 7.0) puede trabajar con ADO, lo que le posibilita al motor de base de datos conectarse a cualquier proveedor OLE DB, por ejemplo, desde un procedimiento almacenado de SQL Server puede acceder a una base de datos Access para consultar datos, o realizar una búsqueda con Microsoft Index Server (indexador de todo tipo de documentos Word, Exel, Etc.) y encontrar documento con un determinado string.
Para conectarse por medio de ADO es necesario un proveedor de OLE DB, en el Option Pack están disponibles tres proveedores (providers):
OLE DB Provider for ODBC: Permite conectarse a cualquier fuente de datos ODBC. Los drivers ODBC están disponibles para la mayoría de los  DBMS en uso hoy.
OLE DB Provider for Microsoft Index Server: El  proveedor para Microsoft Index Server proporciona acceso de solo lectura alos archivos de sistema y documentos Word, Exel, Web, Etc.  Las consultas SQL pueden recibir la  información en forma apropiada para el motor de base de datos.
OLE DB Provider for Microsoft Active Directory Service: Permite acceder a los servicios de directorios, tanto de NT como de Novell.
Caracteristicas
  • Cursores del lado del cliente, como RDO con actualización optimista, objetos Recordset sin conexión y mucho más.
  • Comandos como métodos de conexión, los comandos  asociados con esta conexión se convierten en métodos.
  • Acceso a datos remotos, los usuarios de ADO pueden transmitir datos a través de HTTP a un cliente, trabajar con dichos datos devolverlos al servidor HTTP de nuevo.


Ejemplo de una conexion.
Public Sub ConnectionString()

 Dim cnn1 As ADODB.Connection
 Dim cnn2 As ADODB.Connection
 Dim cnn3 As ADODB.Connection
 Dim cnn4 As ADODB.Connection

 ' Abre una conexión sin usar un Data Source Name (DSN).
 Set cnn1 = New ADODB.Connection
 cnn1.ConnectionString = "driver={SQL Server};" & _
  "server=bigsmile;uid=sa;pwd=pwd;database=pubs"
 cnn1.ConnectionTimeout = 30
 cnn1.Open
 
 ' Abre una conexión usando DSN y ODBC.
 Set cnn2 = New ADODB.Connection
 cnn2.ConnectionString = "DSN=Pubs;UID=sa;PWD=pwd;"
 cnn2.Open
 
 ' Abre una conexión usando DSN y OLE DB.
 Set cnn3 = New ADODB.Connection
 cnn3.ConnectionString = "Data Source=Pubs;User 
 ID=sa;Password=pwd;"
 cnn3.Open
 
 ' Abre una conexión que usa un DSN y argumentos 
 ' individuales en lugar de una cadena de conexión.
 Set cnn4 = New ADODB.Connection
 cnn4.Open "Pubs", "sa", "pwd"
   
 ' Muestra el estado de las conexiones
 MsgBox "cnn1 state: " & GetState(cnn1.State) & vbCr & _
  "cnn2 state: " & GetState(cnn2.State) & vbCr & _
  "cnn3 state: " & GetState(cnn3.State) & vbCr & _
  "cnn4 state: " & GetState(cnn4.State)

 cnn4.Close
 cnn3.Close
 cnn2.Close
 cnn1.Close

End Sub

Public Function GetState(intState As Integer) As String

 Select Case intState
  Case adStateClosed
   GetState = "adStateClosed"
  Case adStateOpen
   GetState = "adStateOpen"
 End Select

End Function

jueves, 22 de septiembre de 2011

VISUAL BASIC 6.0

VISUAL BASIC 6.0
Es un lenguaje de programación visual, también llamado lenguaje de 4ª generación. Esto quiere decir que un gran número de tareas se realizan sin escribir código, simplemente con operaciones gráficas realizadas con el ratón sobre la pantalla. Visual Basic 6.0 utiliza objetos con propiedades y métodos, pero carece de los mecanismos de herencia y polimorfismo propios de los verdaderos lenguajes orientados a objetos como Java y C++.

PROGRAMAS SECUENCIALES, INTERACTIVOS Y ORIENTADOS A EVENTOS
Un programa secuencial es un programa que se arranca, lee los datos que necesita, realiza los cálculos e imprime o guarda en el disco los resultados.
Los programas interactivos exigen la intervención del usuario en tiempo de ejecución, bien para suministrar datos, bien para indicar al programa lo que debe hacer por medio de menús.
Por su parte los programas orientados a eventos son los programas típicos de Windows, tales como Netscape, Word, Excel y PowerPoint. Cuando uno de estos programas ha arrancado, lo único que hace es quedarse a la espera de las acciones del usuario, que en este caso son llamadas eventos.

PROGRAMAS PARA EL ENTORNO WINDOWS
Modo de Diseño y Modo de Ejecución: La aplicación se prueba en modo de ejecución. En ese caso el usuario actúa sobre el programa (introduce eventos) y prueba cómo responde el programa. Hay algunas propiedades de los controles que deben establecerse en modo de diseño, pero muchas otras pueden cambiarse en tiempo de ejecución desde el programa escrito en Visual Basic 6.0.

Formularios y Controles: Los controles son los que forman parte de la aplicación típica como la cajas de texto, botones, etiquetas, etc. Un formulario puede ser considerado como una especie de contenedor para los controles. Una aplicación puede tener varios formularios, pero un único formulario puede ser suficiente para las aplicaciones más sencillas.

Objetos y Propiedades: Cada formulario y cada tipo de control tienen un conjunto de propiedades que definen su aspecto gráfico (tamaño, color, posición en la ventana, tipo y tamaño de letra, etc.) y su forma de responder a las acciones del usuario. Las propiedades de un objeto son datos que tienen valores lógicos (True, False) o numéricos concretos, propios de ese objeto y distintos de las de otros objetos de su clase.

Nombres de objetos: El nombre puede ser el que el usuario desee, e incluso Visual Basic 6.0 proporciona nombres por defecto para los diversos controles. Los nombres por defecto no son adecuados porque hacen referencia al tipo de control, pero no al uso que de dicho control está haciendo el programador.

Eventos: Cada vez que se produce un evento sobre un determinado tipo de control, Visual Basic 6.0 arranca una determinada función o procedimiento que realiza la acción programada por el usuario para ese evento concreto.

Métodos: Los métodos son funciones que también son llamadas desde programa, pero a diferencia de los procedimientos no son programadas por el usuario, sino que vienen ya pre-programadas con el lenguaje. Los métodos realizan tareas típicas, previsibles y comunes para todas las aplicaciones.

Proyectos y ficheros: Cada aplicación que se empieza a desarrollar en Visual Basic 6.0 es un nuevo proyecto. Existe siempre un fichero con extensión *.vbp (Visual Basic Project). Los ficheros de los formularios se crean con File/Save Filename As teniendo como extensión *.frm.Los ficheros de código o módulos se guardan también con el comando File/Save Filename As y tienen como extensión *.bas si se trata de un módulo estándar o *.cls si se trata de un módulo de clase (class module).

sábado, 27 de agosto de 2011

SISTEMAS DE GESTORES DE BASE DE DATOS

Sistema De Archivos
Un sistema de archivos es un conjunto de programas que prestan servicio a los usuarios finales, donde cada programa define y maneja sus propios datos.
Los sistemas de archivos surgen de la necesidad de reemplazar el manejo de los archivos manuales para obtener acceso a los datos con mayor rapidez.
Los sistemas de archivos presentan algunos inconvenientes. Debido a los inconvenientes que presentaban los sistemas de archivos surgieron las Bases de Datos y los Sistemas de Gestión de Base de Datos.
Base De Datos (BD)
Una base de datos es un conjunto de datos almacenados entre los que existen relaciones lógicas y ha sido diseñada para satisfacer los requerimientos de información de una organización. En las bases de datos se almacenan grandes cantidades de datos, teniendo todos los datos integrados y creando una dependencia de datos a la organización.
Los sistemas de información separan la definición de la estructura de datos de los programas de aplicación y almacenan esta definición en la base de datos, lo que permite que al añadir o modificar estructura de datos.
Sistema De Gestión De Base De Datos (SGBD) 
Data Base Managment System (DBMS)
Los sistemas de Gestión de Bases de Datos, son aplicaciones que permiten a los usuarios definir, crear y mantener la base de datos y proporciona un acceso controlado a la misma. Los SGBD es la aplicación que interactúa con los usuarios de los programas de aplicación y la base de datos. Algunos de los SGBD más conocidos son: SQL, DB2, SLQ/DS, ORACLE, INGRES, INFORMIX, SYBASE, PARADOX, DBASE, ACCESS, FOXPRO, R, RM/T y RM/V2.
Objetivos De Un SGBD
  • Definir la Base de Datos mediante el Lenguaje de Definición de Datos, el cual permite especificar la estructura, tipo de datos y las restricciones sobre los datos.
  • Separar la descripción y manipulación de la data, permitiendo un mayor entendimiento de los objetos, además de flexibilidad de consulta y actualización de los datos.
  1. Permitir la inserción, eliminación, actualización, consulta de los datos mediante el Lenguaje de Manejo de Datos, existen dos tipos de programas de Manejo de Datos, los cuales se diferencian por la forma en que acceden a los datos.Lenguajes procedurales: manipulan la base de datos registro a registro y se deben especificar las operaciones a realizar para obtener los datos resultado.
  2. Lenguajes no procedurales: manipulan la base de datos en conjuntos de registros y se especifican qué datos deben obtenerse como resultado sin plantear las forma de hacerlo.
  • Proporcionar acceso controlado a la base de datos.
  1. Seguridad: los usuarios no autorizados no pueden acceder a la base de datos. 
  2. Integridad: mantiene la integridad y consistencia de la base de datos.
  3. Control de Recurrencia: permite el acceso compartido a la base de datos. 
  4. Control de Recuperación: restablece la base de datos después de producirse un fallo de software o hardware. 
  5. Diccionario de datos o Catálogo: contiene la descripción de los datos de la base de datos y es accesible por el usuario.
  • Gestionar la estructura física de los datos y su almacenamiento, proporcionando eficiencia en las operaciones de la base de datos y el acceso al medio de almacenamiento.
  • El lenguaje de definición nos permite definir las vistas como subconjuntos de la base de datos, permitiendo: 
  1. Proporcionar un nivel de seguridad excluyendo datos para que no sean vistos por determinados usuarios.
  2. Permiten que los usuarios vean los datos en el formato deseado.
  3. Una vista representa una imagen consistente y permanente de la base de datos, aún cuando a la base de datos se le hagan cambios en sus estructura.
  • Proveer interfaces procedimentales y no procedimentales, permitiendo la manipulación por usuarios interactivos y programadores.
  • Independizar la descripción lógica de la Base de datos y las descripciones particulares de los diferentes puntos de vistas de los usuarios. 
  • Permitir una fácil administración de los datos.
Actores En El Entorno De Una BD
-Administrador de la base de datos:se encarga del diseño físico de la base de datos y de su implementación, realiza el control de la seguridad y de la concurrencia, mantiene el sistema para que siempre se encuentre operativo y se encarga de que los usuarios y las aplicaciones obtengan buenas prestaciones.
-Diseñadores de la base de datos: realizan el diseño lógico de la base de datos, debiendo identificar los datos, las relaciones entre datos y las restricciones sobre los datos y sus relaciones.
-Programadores de aplicaciones: se encargan de implementar los programas de aplicación que servirán a los usuarios finales. Estos programas de aplicación son los que permiten consultar datos, insertarlos, actualizarlos y eliminarlos.
-Usuarios finales: consultan, actualizan y generan reportes de la base de datos.
Ventajas De Los SGBD
INTEGRACIÓN DE LOS DATOS
-Control sobre la redundancia de datos: Los sistemas de archivos almacenan varias copias de los mismos datos en archivos distintos.
-Consistencia de datos: Eliminando o controlando las redundancias de datos se reduce en gran medida el riesgo de que haya inconsistencias.
-Compartición de datos: En los sistemas de archivos, los archivos pertenecen a las personas o a los departamentos que los utilizan.
-Mantenimiento de estándares: Gracias a la integración es más fácil respetar los estándares necesarios, tanto los establecidos a nivel de la empresa como los nacionales e internacionales.
EXISTENCIA DE LOS SGBD
-Mejora en la integridad de datos: La integridad de la base de datos se refiere a la validez y la consistencia de los datos almacenados.
-Mejora en la seguridad: Los SGBD permiten mantener la seguridad mediante el establecimiento de claves para identificar al personal autorizado a utilizar la base de datos.
-Mejora en la productividad: A nivel básico, el SGBD
-Aumento de la concurrencia: La mayoría de los SGBD gestionan el acceso concurrente a la base de datos y garantizan que no ocurran problemas en el acceso de múltiples usuarios.
-Mejora en los servicios de copias de seguridad y de recuperación ante fallos: Los SGBD actuales funcionan de modo que se minimiza la cantidad de trabajo perdido cuando se produce un fallo.
Inconvenientes De Los SGBD
-Complejidad: Los SGBD son conjuntos de programas muy complejos con una gran funcionalidad.
-Tamaño: Los SGBD son programas complejos y muy extensos que requieren una gran cantidad de espacio en disco y de memoria para trabajar de forma eficiente.
-Coste económico del SGBD: El coste de un SGBD varía dependiendo del entorno y de la funcionalidad que ofrece.
-Costo del equipamiento adicional: Tanto el SGBD, como la propia base de datos, pueden hacer que sea necesario adquirir más espacio de almacenamiento.
-Costo de la conversión: En algunas ocasiones, el costo del SGBD y el costo del equipo informático que sea necesario adquirir para su buen funcionamiento, es insignificante comparado al coste de convertir la aplicación actual en un sistema de bases de datos.
-Prestaciones: Los SGBD están escritos para ser más generales y ser útiles en muchas aplicaciones, lo que puede hacer que algunas de ellas no sean tan rápidas como en los sistemas de archivos.
-Vulnerable a los fallos: El hecho de que todo esté centralizado en el SGBD hace que el sistema sea más vulnerable ante los fallos que puedan producirse.
Arquitectura De Tres Niveles
  1. El nivel interno: tiene un esquema interno, el cual describe la estructura de almacenamiento físico de la Base de Datos.
  2. El nivel conceptual: tiene un esquema conceptual el cual describe la estructura de todas las Bases de Datos para una comunidad de usuarios.
  3. El nivel externo: o nivel de vista incluye un número de esquemas externos o vistas de usuario.
Módulos De Los DBMS
Los DBMS son software tremendamente complicados; a continuación se muestran los componentes de software que constituyen un DBMS y los tipo de software del sistema que interactúan con los DBMS.
-La BD y los catálogos del DBMS usualmente son almacenados en discos. 
-El acceso a disco es controlado principalmente por el sistema operativo el cual controla las I/O a los discos.
-Un módulo de administración de datos almacenados de alto nivel ( stored data manager) del DBMS controla el acceso a la información del DBMS almacenada en disco, sí este es parte de la BD o del catálogo.
-El compilador DDL (DDL compiler) procesa las definiciones de esquema especificadas en el DDL y almacena la descripción de los esquemas en el catálogo del DBMS.
-El procesador en tiempo real (runtime processor) de la BD maneja el acceso a la BD en tiempo real, este recibe las operaciones de obtención y actualización y las lleva a la BD para su ejecución, el acceso se tiene mediante el gestor de datos almacenados.
-El procesador de consultas (query prossesor) maneja las consultas de alto nivel que son ingresadas interactivamente, donde el usuario espera los resultados de la búsqueda en el momento.
-El precompilador (precompiler) extrae los comandos del DML de un programa de aplicación escrito en un lenguaje de programación host.
-Estos comandos son enviados al compilador DML para su compilación en código objeto para el acceso de la BD.
Módulos De Los DBMS
El diseño de una base de datos es un proceso complejo que abarca decisiones en distintos niveles. La complejidad se controla mejor si se descompone el problema en subproblemas y se resuelve cada uno de éstos de manera independientemente, utilizando técnicas específicas. Así, el diseño de una base de datos se descompone en diseño conceptual, diseño lógico y diseño físico.
Diseño Conceptual
El diseño conceptual se refiere a la etapa donde se debe construir un esquema de la información a partir de los requerimientos y resultados de usuario, independientemente de cualquier consideración física, el objetivo es comprender:
-La perspectiva que cada usuario tiene de los datos. 
-La naturaleza de los datos, independientemente de su representación física. 
-El uso de los datos a través de las áreas de aplicación.
El esquema conceptual se puede utilizar para que el diseñador transmita lo que ha entendido sobre los requerimientos de usuario, de manera particular.
Diseño Lógico
El diseño lógico es el proceso de construir un esquema de la información, basándose en un modelo de base de datos específico independiente del DBMS y de cualquier otra consideración física. Conforme se va desarrollando el esquema lógico, éste se va probando y validando con los requisitos de usuario. Tanto el diseño conceptual como el diseño lógico son procesos iterativos, tienen un punto de inicio y se van refinando continuamente.También puede ser difícil definir la implementación física o el mantener unas prestaciones aceptables del sistema.
Por todo esto, es fundamental dedicar el tiempo y las energías necesarias para producir el mejor esquema que sea posible.El esquema lógico es una fuente de información para el diseño físico.
Diseño Físico
El diseño físico es el proceso de producir la descripción de la implementación de la base de datos en memoria secundaria, donde las estructuras de almacenamiento y los métodos de acceso garanticen un acceso eficiente a los datos. Entre el diseño físico y el diseño lógico hay una realimentación ya que algunas de las decisiones que se tomen durante el diseño físico para mejorar las prestaciones pueden afectar a la estructura del esquema lógico.el propósito del diseño físico es describir cómo se va a implementar físicamente el esquema lógico.