Conexión con base de datos en Access

Ya vimos un poco de teoría, es tiempo de pasar al código ADO.NET para iniciar con la practica, algunos conceptos que no entiendan por favor dejen su comentario y les contestare en breve.

Este es un ejemplo simple de una conexión con una base de datos de Access la base de datos que estaremos utilizado será la de Northwind o Neptuno como la quieran llamar.

Estaré explicando los ejemplos paso a paso, estaremos trabajando con módulos y los resultados los observaremos en consola, después aplicaremos lo que aprendimos de las conexiones a objetos de Visual Basic .NET, como DataGridView, CristalReports, etc. Si bien les parece mejor que empecemos en vez de consola con objetos de VB.NET.

Les aconsejo que bajen una versión de prueba del Visual Studio 2005,2008 ó 2010 para realizar los ejemplos y que tengan el Access, con la base de datos de ejemplo, Northwind.

Asegúrense de pegar la base de datos de Access, en la carpeta DEBUG que se encuentra en bin dela capeta del proyecto de consola.

Esto solo muestra las propiedades de la conexión si es exitosa.

Empieza Código:

 

 

Imports System.Data.OleDb ‘esta librería es para conectarnos con OLEDB

Module ConexionNorthwind

Sub Main()

‘primero tenemos que crear un objeto connection

Dim conn As New OleDbConnection

‘después establecemos la cadena de conexión, estableciendo el proveedor y el origen de datos

conn.ConnectionString = «Provider = Microsoft.Jet.OLEDB.4.0;» & _

«Data Source = » & CurDir() & «\Northwind.mdb» ‘CurDir, obtiene la carpeta actual

‘se utiliza po si tenemos para tratamiento de error por si tenemos error en la conexión, no se paralice la aplicación

Try

‘abrimos la conexión

conn.Open()

‘condición si esta abierta la conexión

If conn.State = ConnectionState.Open Then

‘mostramos las propiedades de la conexión

Console.WriteLine(«Se a establecido la conexión»)

Console.WriteLine(«ConnectionString = ‘» & conn.ConnectionString & «‘»)

Console.WriteLine(«ConnectionTimeOut = » & conn.ConnectionTimeout)

Console.WriteLine(«Database = » & conn.Database)

Console.ReadLine() ‘espera hasta que se presione una tecla para avanzar

conn.Close() ‘aquí cerramos la conexión

Else

Console.WriteLine(«La conexión no pudo completarse, esta cerrada»)

End If

Catch ex As Exception

Console.WriteLine(«***Error al intentar conexión***»)

End Try

End Sub

End Module

DML(Lenguaje de manipulación de datos)

Si con DDL definimos las estructuras para el almacenamiento de los datos con DML podremos manipular los datos propiamente dichos, efectuando consultas para recuperar datos, modificaciones, borrados, etc.

Las operaciones fundamentales de manipulación de datos son cuatro y consecuentemente cuatro los comando  DML que necesitaremos para poder llevarlas a cabo:

 

  • SELECT: La sentencia DML por excelencia se utiliza para ejecutar consulta de recuperación de datos.

 

  • INSERT: Su finalidad es insertar nuevas filas en una tabla.

 

  • UPDATE : Con este comando es posible cambiar la información alojada en una o mas filas.

 

  • DELETE: Se utiliza para eliminar una o mas filas.

 

Ejemplos:

 

Insertar registro:

 

INSERT INTO tabla1(Campo1,Campo2,Campo3) VALUES(1,’dos’,3)

 

Los capos de texto que en este caso es Campo2 van entre comillas simples.

 

Actualizar registro

 

UPDATE tabla1 SET Campo1 = 4,Campo2 = «Cinco»,Campo3 = 3 WHERE ID = 1

 

En la consulta de Actualizacion cuando se quiere actualizar solo un registro se tiene que poner el WHERE porque tenemos que indicar en donde se actualizara que en este caso es registro con el ID 1, de lo contrario si no lo ponemos se actualizara toda la tabla.

 

Eliminar Registro

 

DELETE Campo1, Campo2, Campo3 FROM tabla1 WHERE ID = 2

 

De igual manera se utiliza el WHERE para eliminar un registro indicado en una tabla, en este caso eliminamos el registro con el ID 2 de la tabla, si no colocáramos el WHERE eliminaríamos toda la tabla.

 

Recuperación de registros

 

SELECT Campo1,Campo2,Campo3 FROM tabla1

 

Esta es como dijimos el DML por excelencia porque se utiliza para realizar consultas que devuelven registros con los criterios aplicados ya sea JOINS.

 

 

Esto es solo un breve concepto de teoría cuando estemos con los ejemplos, explicare paso a paso.

DDL(lenguaje de definición de datos)

Mediante DDL es posible crear una base de datos, crear las tablas definiendo las columnas que tendrán, crear índices y vistas y por supuesto modificar eliminar todos los elementos.

 

Los comando DDL son 3:

 

CREATE : Se utiliza para crear bases de datos, tablas, índices, desencadenadores, procedimientos almacenados y vistas, según la palabra clave que se indique a continuación. Dependiendo el caso aceptara mas o menos parámetros adicionales.

 

DROP: Acepta las mismas palabras clave que el comando create, si bien la finalidad es eliminar el elemento indicado en vez de crearlo.

 

ALTER: Con este comando es posible modificar algunas de las estructuras de una base de datos. No acepta todas las palabras clave de los comandos anteriores, solo parte de ellas. Las vistas por ejemplo pueden crearse y eliminarse pero no modificarse.

 

Dependiendo del elemento que se pretenda crear, eliminar o modificar tras el comando ira una de las palabras clave siguientes :

 

  • DATABASE : Base de datos
  • TABLE: Tabla
  • VIEW: Vista
  • PROCEDURE: Procedimiento Almacenado
  • TRIGGER: Desencadenador
  • INDEX: Índice

 

Los parámetros adicionales dependerán del comando y en ocasiones, del RDBMS sobre del que se esta trabajándose.

 

Ejemplos:

 

Creación de una base de datos

 

CREATE DATABASE TestBD

 

Creación de tabla

 

CREATE TABLE tabla1

(

campoID Integer Primary Key,

Campo2 Char(10) UNIQUE,

Campo3 Char(2) NOT NULL,

Campo4 Char(5)

)

 

Modificación de la tabla1, eliminado el Campo3

 

ALTER TABLE tabla1 DROP COLUMN Campo3

Que es SQL?

Como su propio nombre lo indica, SQL es un lenguaje para consulta de datos. A diferencia de los lenguajes de programación que estará acostumbrado a usar, en SQL no existen ciertos elementos como las estructuras de control por lo que no es un lenguaje que pueda ser usado para crear procedimientos. Su finalidad básica es facilitar la manipulación de datos como si fuesen un conjuntos, en contra posición al tratamiento que se efectúa desde los leguajes de programación donde cada dato se procesa de manera individual.

 

Partes SQL:

 

DML: es la parte conocida como leguaje SQL, al formar parte de el todas las sentencias de manipulación de datos, extracción de información actualización y eliminación. Teóricamente y asumiendo que existe un DBA que se ocupa del RDBMS, los programadores solo tendrían que usar DML para efectuar su trabajo.

 

DDL: con las sentencias DDL no se manipulan los datos propiamente dichos, si no la información de su estructura. Con las sentencias DDL pueden definirse las columnas de una tabla y sus atributos, eliminar o crear un índice.

 

DCL: mucho menos conocidos que los anteriores este lenguaje se compone de sentencias especificas para garantizar la seguridad de acceso a los datos, facilitando la gestión de usuarios y el otorgamiento o denegación de los permisos necesarios para operar cada elemento de la base de datos.

Informacion

La siguiente publicación empezaremos con SQL solo escribiré teoría para explicar cada consulta y al terminar la introducción SQL ya empezaremos con ADO.NET, lo de base de datos solo estoy explicando un poco no estoy afondo en la explicación del  tema.

 

 

Saludos

Entidades y atributos

La información almacenada en una base de datos pertenece a generalmente a objetos reales que es posible identificar fácilmente. Esos objetos cuentan con una serie de propiedades. Por ejemplo, un libro tiene un titulo, un editorial, un autor, un ISBN, un precio, un numero de paginas, etc. Toda la información de ese objeto formaría una entidad, mientras que cada dato seria un atributo de la entidad. Los atributos de una entidad se parten en una fila ocupando cada atributo en una columna.

Estructura de datos

Los RDBMS introducen la información en las tablas que pueden ser consideradas como conjunto de entidades cada una de las cuales tiene una serie de atributos. Los atributos almacenan datos en un cierto dominio y en algunas ocasiones sirven para establecer relaciones con otras entidades. Los puntos siguientes son un recorrido rápido por los conceptos mas importantes relativos a la estructura  de la información en un RDBMS, independiente de cual sea este.

Proveedores y Controladores

Nosotros contamos con los servicios de ADO.NET para acceder a los orígenes de datos utilizando para ello un modelo de objetos y componentes que veremos mas adelante. ADO.NET a su vez precisa de otros elementos para poder efectuar su trabajo, entre ellos los proveedores y los controladores .

 

Un proveedor ADO.NET es una implementación especifica de una serie de componentes que facilitan el acceso a un determinado orígenes de datos. Visual Basic .NET incorpora por defecto dos proveedores de datos .NET: uno para SQL Server y otro capaz de emplear cualquier controlador OLEDB, hay disponibles dos mas que son uno para Oracle y el dirigido al uso de un controlador ODBC.

Los proveedores .NET aparecen, desde el punto de vista del desarrollador, como una serie de definiciones de clases alojadas en un ámbito con nombre o namespace, clases que pueden usar para acceder a un determinado origen de datos. El proveedor de datos SQL Server y Oracle son específicos comunicándose directamente con el software cliente de esas bases de datos sin intermediario alguno. Los proveedores OLE DB y ODBC, por el contrario son de tipo genérico diseñados para aprovechar todos los controladores que ya hay disponibles de esos dos tipos.

En la siguiente figura puede ver representado dos supuestos en los que un cliente necesita acceder a dos orígenes de datos diferentes: una base de datos SQL Server y una base de datos IBM DB2. En el primer caso puesto que existe un proveedor .NET especifico, el cliente tan solo precisa el software cliente de SQL Server y ya, el segundo, por el contrario, no existe ese proveedor especifico pero si un controlador ODBC que sabe como comunicarse con el software cliente de DB2. Utilizamos por tanto el proveedor genérico ODBC .NET que a su vez empleara el controlador ODBC adecuado.

El acceso con proveedores genéricos implica mas carga de proceso y por tanto un menor rendimiento en la aplicación. En algunas ocasiones sin embargo puede ser la única vía para poder llegar a cierta informació

 

 

Servicio de Acceso a Datos

Aunque ciertos tipos de información son accesibles para el usuario mediante aplicaciones especializadas, por ejemplo Microsoft Excel para las hojas de calculo o Paradox para las bases de datos propias de Paradox, en la mayoría de los casos el usuario necesitara una solución a medida de sus necesidades en lugar de otra general. No será lógico por ejemplo que los usuarios utilicen el software de administración para operar directamente sobre un servidor de datos como SQL Server u Oracle. Aparte de complejo para aquellos que no tienen conocimiento  de bases de datos y del leguaje SQL, esa posibilidad pondría en peligro la propia seguridad de los datos.

 

ADO.NET, a demás de ser una solución global para el acceso ala información no necesitamos otros servicios según el tipo de dato con lo que vayamos a trabajar. Como se indica anteriormente con ADO.NET podemos tanto operar sobre archivos XML, documentos Excel, base de datos locales y remotas, etc.

Arquitectura Cliente/Servidor

Durante años las bases de datos se han utilizado en sistemas que se ajustaban a una arquitectura conocida como cliente/servidor. En ella los datos residen en un ordenador que actúa como servidor, ejecutando el software que denominábamos servidor de datos. Los usuarios desde ordenadores remotos sirven d un software cliente para comunicarse con el servidor de datos. Ese software cliente es especifico para cada servidor de datos existente.

Supongamos que esta utilizando SQL Server como servidor de datos, estando instalado dicho software en una maquina que reside en un centro de proceso de datos. Desde su ordenador, ubicado en otra planta del mismo edificio, se comunicaría con ese servidor mediante el software cliente de SQL Server, instalado en la maquina. Dicho software cliente no serviria para comunicar con un servidor Oracle o DB2, por poner un caso, teniendo que disponer del software cliente que corresponda en cada caso.

 

En la siguiente imagen se puede ver representada una típica configuración cliente/servidor. Concretamente aparece un servidor de datos, en la parte superior y varios clientes en la inferior . Aunque dicha imagen no se ha representado, se supone que tanto clientes como servidor tienen sus respectivos paquetes de software instalados.