Buscar en este blog

lunes, 31 de enero de 2011

Conexión con bases de datos (1ª parte)

La posibilidad de conectar objetos del dibujo con archivos de bases de datos externas no fue posible en AutoCAD hasta la aparición de la versión 12, con la introducción del módulo AutoCAD SQL Extension (ASE). Hasta ese momento, la única forma de asociar datos no gráficos con los objetos del dibujo era mediante la utilización de bloques con atributos. Como sabemos, los atributos son elementos textuales que se añaden a los bloques y cuyo valor puede ser diferente en cada inserción del bloque.

Conceptualmente, una definición de bloque con atributos puede considerarse como la estructura de una tabla muy simple de una base de datos. Los identificadores de los atributos actúan como las cabeceras de las columnas de la tabla. Cada inserción del bloque, con sus correspondientes valores de los atributos, sería entonces una fila de dicha tabla. De hecho, los valores de los atributos pueden exportarse a un archivo de texto, el cual, a su vez, puede ser importado en una base de datos o en una hoja de cálculo.

Sin embargo, el uso de bloques con atributos tiene serias limitaciones. La primera es que los atributos sólo pueden asociarse a los bloques y no a cualquier otro objeto del dibujo. La segunda, y más importante, es que la transferencia de información entre el dibujo y la base de datos sólo puede hacerse en una dirección, es decir, no es posible modificar, en un programa de gestión de bases de datos, la información extraída de los atributos y actualizar automáticamente esa modificación en el dibujo. En determinadas situaciones, donde las principales modificaciones no se efectúan sobre el dibujo sino sobre los datos extraídos del mismo, esta limitación resulta crítica.

La conexión directa de cualquier objeto de un dibujo con la información almacenada en una base de datos salva las limitaciones que hemos mencionado y abre un enorme campo de posibilidades.

En un principio, AutoCAD utilizaba controladores especiales propios para poder conectar con diferentes sistemas de bases de datos. Con la aparición de las versiones de AutoCAD para Windows, la conexión con las bases de datos se hace mediante el estándar ODBC de Microsoft (Open DataBase Connectivity), que fue diseñado para permitir la conexión de cualquier aplicación con todo tipo de sistemas de bases de datos. Finalmente, a partir de la versión 2000, AutoCAD soporta también la tecnología OLE DB de Microsoft que, esencialmente, es similar a ODBC, puesto que también actúa como canal de comunicación entre una aplicación y un sistema de bases de datos, pero supera algunas de las limitaciones que presentaba ODBC y soporta los cambios que ha impuesto Internet en lo referente a la conexión con bases de datos.


Características generales

En la versión 2011 de AutoCAD todas las operaciones relacionadas con la conexión a bases de datos se llevan a cabo mediante una interfaz de usuario denominada Conexión BD, que cuenta con sus propias ventanas, menús y comandos específicos y que ofrece, entre otras, las siguientes posibilidades:
  • Visualizar y modificar la información contenida en las tablas de datos. El acceso a la información es posible, además, sin necesidad de tener instalada en el ordenador la aplicación con que fue creada dicha información, lo que permite acceder a bases de datos de grandes sistemas como Oracle o SQL Server.
  • Seleccionar objetos del dibujo efectuando consultas sobre la información de la base de datos. Así, por ejemplo, en el plano de una fábrica es posible seleccionar todas las máquinas cuya revisión deba efectuarse en las próximas tres semanas.
  • Crear objetos de texto cuyo contenido esté directamente vinculado a una celda de la tabla de datos. De este modo, el texto cambiará automáticamente para reflejar en cada momento la información contenida en la celda a la que esté vinculado.
La interfaz de usuario de la Conexión BD se compone de los siguientes elementos:
  • Una herramienta de configuración de orígenes de datos.
  • El administrador de Conexión BD.
  • Un visor de datos.
  • Un editor de consultas.


El Administrador de Conexión BD

Como ya hemos dicho, el Administrador de Conexión BD es la interfaz básica que permite la conexión de AutoCAD con las bases de datos. Se compone de una paleta similar a la de Propiedades o la de DesignCenter, que cuenta con una barra de herramientas propia y una vista en árbol. Como en todas las paletas, su tamaño y posición pueden modificarse a voluntad, pero no soporta la propiedad de transparencia. La vista en árbol contiene un nodo para cada dibujo que esté abierto en la sesión actual y un nodo adicional que muestra los orígenes de datos que estén configurados en el sistema. Una vez establecida la conexión con un origen de datos, este último nodo muestra también las tablas contenidas en dicho origen de datos.

La mayor parte de los comandos del Administrador de Conexión BD pueden invocarse desde la vista en árbol mediante menús contextuales a los que se tiene acceso pulsando el botón derecho del ratón sobre sus diferentes elementos.

La paleta del Administrador de Conexión BD se puede abrir o cerrar mediante cualquiera de los siguientes procedimientos:
  • Pulsando la combinación de teclas Ctrl+6.
  • Escribiendo CONEXIONBD (para abrir) o CERRARDBC (para cerrar) en la ventana de comandos o en la entrada de solicitud dinámica.
  • Si la barra de menús está visible, seleccionando la opción Conexión BD en el submenú Paletas del menú desplegable Herr.


Configurar una conexión con una base de datos

Antes de efectuar cualquier operación con una base de datos, es preciso definir una conexión con la misma. En general, el proceso de configuración exige la utilización de dos programas y se efectúa en dos pasos.

En primer lugar, debe definirse un Origen de Datos (Data Source) usando el Administrador de Orígenes de Datos ODBC de Microsoft. Este programa forma parte del sistema operativo Windows y permite crear archivos de origen de datos que pueden ser utilizados por cualquier programa para comunicarse con la base de datos de que se trate.

El segundo paso consiste en definir la conexión propiamente dicha creando un Vínculo de Datos (Data Link) utilizando el Administrador de Vínculos de Datos OLE DB. Este programa es uno de los componentes de acceso a datos de Microsoft y puede ser invocado directamente desde AutoCAD. Un vínculo de datos es un archivo con extensión UDL, que se guarda por defecto en la carpeta Data Links, que forma parte de la estructura de carpetas de AutoCAD.

En algunos casos, como ocurre con las bases de datos procedentes de Microsoft Access, Oracle o Microsoft SQL Server, es posible utilizar controladores OLE DB directos para estos sistemas, no siendo necesario definir previamente un origen de datos ODBC. En los ejemplos que veremos a lo largo de esta serie haremos uso de los dos métodos de configuración. En primer lugar, utilizaremos una base de datos creada en Microsoft Access Parcelas.mdb, para la que configuraremos una conexión directa utilizando solamente el Administrador de Vínculos de Datos OLE DB. Más adelante, crearemos una configuración para acceder a una hoja de cálculo, que exigirá efectuar los dos pasos, es decir, definir un origen de datos ODBC y un vínculo de datos OLE DB, para establecer la conexión con la misma.

Nota: Si se utiliza la versión de 64 bits de AutoCAD para conectar con una base de datos de Microsoft Access o una hoja de cálculo de Microsoft Excel es preciso instalar el Componente redistribuible del motor de base de datos de Microsoft Access 2010. Este componente se puede descargar gratuitamente desde la página web de Microsoft http://www.microsoft.com/downloads/es-es/details.aspx?FamilyID=C06B8369-60DD-4B64-A44B-84B371EDE16D.

Siga los pasos que le indicamos a continuación para configurar la conexión con la base de datos Parcelas.mdb, que, como hemos dicho, se trata de un archivo de base de datos creado con el programa Microsoft Access:
  1. Inicie AutoCAD con un dibujo nuevo o abriendo un dibujo cualquiera.
  2. Pulse la combinación de teclas Ctrl+6 o bien escriba CONEXIONBD en la línea de comando y pulse Intro. Se abrirá la paleta del Administrador de conexión BD.
  3. Haga clic con el botón derecho del ratón sobre el nodo Origen de datos y seleccione la opción Configurar origen de datos en el menú contextual. Esta operación abrirá el cuadro de diálogo Configurar un origen de datos.
  4. Escriba Parcelas en la casilla Nombre origen de datos.
  5. Pulse en el botón Aceptar. Se abrirá el cuadro de diálogo Propiedades de vínculo de datos donde se debe elegir el controlador a través del cual se efectuará la conexión con la base de datos.
  6. Asegúrese de que esté seleccionada la ficha Proveedor en el cuadro de diálogo. Si utiliza la versión de 32 bits de AutoCAD, seleccione la opción Microsoft Jet 4.0 OLE DB Provider en la lista Proveedores de OLE DB, tal y como muestra la figura siguiente..
  7. Si utiliza la versión de 64 bits de AutoCAD debe seleccionar la opción Microsoft Office 12.0 Access Database Engine OLE DB Provider en la lista Proveedores de OLE DB. Esta opción sólo aparecerá si previamente ha instalado en su sistema el Componente redistribuible del motor de base de datos de Microsoft Access 2010, tal y como hemos indicado más arriba.
  8. Haga clic en el botón Siguiente para activar la ficha Conexión.
  9. Si utiliza la versión de 32 bits de AutoCAD, pulse en el botón etiquetado con puntos suspensivos [...], situado a la derecha de la primera casilla, localice el archivo Parcelas.mdb en el disco y selecciónelo. También puede escribir directamente el camino completo del archivo en la casilla.
  10. Si utiliza la versión de 64 bits de AutoCAD tendrá que escribir el camino completo del archivo Parcelas.mdb en la primera casilla, ya que no existe un botón que permita seleccionarlo directamente. Asegúrese también de que esté seleccionada la opción Usar un nombre de usuario y una contraseña específicos, tal y como muestra la figura siguiente.
  11. Haga clic en el botón Probar conexión. Si todo ha ido bien aparecerá un mensaje indicando que la prueba de conexión fue satisfactoria. De lo contrario, tendrá que comprobar si seleccionó correctamente el proveedor OLE DB y también si es correcta la ubicación del archivo Parcelas.mdb en el disco.
  12. Finalmente pulse el botón Aceptar para completar el proceso de configuración de la conexión con la base de datos.
Al terminar la configuración del origen de datos, se crea un archivo con el nombre Parcelas.udl en la carpeta Data Links y se añade un nuevo elemento Parcelas en el nodo Origen datos.

Nota: El Administrador de Conexión BD no proporciona ningún método para borrar un origen de datos. El único modo de eliminar un origen de datos consiste en abrir la carpeta Data Links y borrar su archivo UDL correspondiente.

También se puede iniciar la configuración de un origen de datos mediante el comando DBCCONFIGURE (no documentado) o bien, si está visible la barra de menús, desde el menú desplegable Conexión BD, seleccionando el submenú Origen datos y la opción Configurar.

7 comentarios:

Anónimo dijo...

Muchas gracias!

maiugoua dijo...

Muchisimas gracias,

Un tutorial muy instructivo.

Anónimo dijo...

hola como estas queria preguntarte. yo mnejo la version 2012 de autocad maps x64 y ya instale Componente redistribuible del motor de base de datos de Microsoft Access 2010. correspondiente a 32bits ya que el ofice que tengo es de 32 bits. cuando voy a configurar una base de datos no me aparece ninguna opcion ni Microsoft Jet 4.0 OLE DB Provider ni tampoco Microsoft Office 12.0 Access Database Engine OLE DB Provider sabes que puedo hacer

Administrador dijo...

Aunque tengas instalada la versión de 32 bits de Office, si el sistema operativo que utilizas es de 64 bits debes instalar la versión de 64 bits del Componente redistribuible del motor de base de datos de Microsoft Access 2010 (AccessDatabaseEngine_X64.exe). Debes tener en cuenta que AutoCAD accede al archivo mdb, con total independencia del programa con el que haya sido creado dicho archivo.

Anónimo dijo...

Me ocurre exactamente lo mismo que el comentario del 5 de Julio de 2012, pero no me deja instalar el complemento de 64 bits; me sale una mensaje de error diciendo que antes tengo que desintalar la version de office 32 bits. ¿Existe algún modo de poder instalarlo sin tener que desintalar el office?
(Acabo de descubrir este blog y son unos artículos superinteresantes y bien desarrollados)
Un saludo

LW dijo...

Es cierto que Office 32 bits y la versión de 64 bits del Componente redistribuible del motor de base de datos de Microsoft Access 2010 (AccessDatabaseEngine_X64.exe) son incompatibles. Nosotros no conocemos ninguna forma (segura) de instalar el componente de 64 bits sin desinstalar Office 32 bits. Lamentamos no poder ayudarte.

Anónimo dijo...

Saludos estimados;

Agradezco esta receta para realizar conexión con base de datos, la verdad me han sacado de un enorme apuro, les mando mis felicitaciones por ser expertos en la materia y por compartir tal información, gracias.