Buscar en este blog

lunes, 18 de abril de 2011

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

Las consultas, que vimos en la sexta parte de esta serie, tienen una potencia indiscutible para seleccionar objetos del dibujo y/o registros de una o varias tablas en función de la información contenida en la base de datos. Sin embargo, cada consulta se aplica siempre sobre todos los objetos del dibujo que hayan sido previamente vinculados con sus correspondientes registros, sin que sea posible aplicar la consulta solamente a algunos de esos objetos. Esta limitación viene a ser como si el comando SELECR (QSELECT) sólo pudiera aplicarse sobre todo el dibujo, en lugar de poder elegir entre aplicarlo sobre una selección de objetos o sobre el dibujo completo.

La herramienta que proporciona AutoCAD para solventar esta carencia de las consultas se denomina selección de vínculos. En este artículo explicaremos las posibilidades que ofrecen las selecciones de vínculos, poniendo especial atención en las ventajas, inconvenientes y diferencias que presentan respecto de las consultas con el fin de saber elegir la herramienta adecuada, consulta o selección de vínculos, para cada situación concreta que se presente.


Definición y utilización de selecciones de vínculos

Una selección de vínculos es un mecanismo muy similar al de las consultas, que permite seleccionar objetos del dibujo en función de los datos contenidos en los registros de la tabla a la que estén vinculados. Ofrece algunas posibilidades que no están disponibles en el Editor de consultas, pero presenta también algunas carencias.

Las  principales características de la selección de vínculos frente al Editor de consultas son las siguientes:
  • Consulta reiterativa. La selección de vínculos permite afinar continuamente cada consulta efectuada combinando los resultados de una consulta con los de otra, cuyos resultados pueden combinarse a su vez con la siguiente y, así, sucesivamente. La combinación de consultas se realiza mediante operadores lógicos de unión, intersección y sustracción.
  • Designación gráfica. Permite seleccionar objetos de forma automática por medio de consultas a las tablas y también designarlos manualmente en el dibujo.
  • Múltiples plantillas de vínculos. La selección de vínculos permite combinar los resultados de las consultas utilizando más de una plantilla de vínculos.
Por otra parte, la selección de vínculos carece de las siguientes funciones que están presentes en el Editor de consultas:
  • Almacenamiento. No permite guardar las consultas efectuadas debido, precisamente, a que utiliza un proceso reiterativo de consulta.
  • Consulta SQL. No proporciona un mecanismo para componer consultas directamente mediante la escritura de sentencias SQL. Esto es debido a que las tablas consultadas deben estar asociadas a una plantilla de vínculos, que sólo permite operaciones de tipo SELECT.
El proceso de selección de vínculos se puede iniciar desde la opción Seleccionar vínculos del menú contextual de las plantillas de vínculos en el Administrador de Conexión BD, desde la opción homónima del submenú Vínculos en el menú desplegable Conexión BD o directamente mediante el comando DBCSELECTLINKS. Todos estos métodos abren el cuadro de diálogo Selección de vínculos cuyo aspecto se muestra en la figura siguiente.
La selección de vínculos se basa en conjuntos de resultados que se crean cada vez que se ejecuta una consulta. Un conjunto de resultados es una serie de registros y/o de objetos del dibujo que satisfacen las condiciones de una consulta. Cuando se crea el primer conjunto de resultados, éste pasa a ser el conjunto A. Después, al efectuar una segunda consulta, sus resultados forman el conjunto B. Ambos conjuntos pueden combinarse mediante las siguientes operaciones lógicas:
  • Unión. Devuelve los registros y/o los objetos que son miembros de los conjuntos A o B.
  • Intersección. Devuelve los registros y/o los objetos que son miembros de los conjuntos A y B.
  • Sustraer A - B. Devuelve los registros y/o los objetos del conjunto A que no son miembros del conjunto B.
  • Sustraer B - A. Devuelve los registros y/o los objetos del conjunto B que no son miembros del conjunto A.
El resultado de la operación lógica pasa a ser el nuevo conjunto A, que puede ser combinado con un nuevo conjunto B y, así, sucesivamente.

Para ilustrar las posibilidades que ofrece la selección de vínculos, veamos el siguiente ejemplo. Consideremos las parcelas de nuestro dibujo parcelas2.dwg divididas en dos mitades por una línea vertical imaginaria, de modo que a la izquierda tendremos las parcelas situadas en el lado Oeste del polígono industrial y a la derecha las parcelas del lado Este. Necesitamos saber cuáles son las parcelas del lado Este que tienen una superficie menor de 1250 metros cuadrados. Esta información no puede obtenerse mediante una consulta convencional en la tabla, porque la situación Este-Oeste de cada parcela no figura en la misma. Así, pues, necesitamos hacer uso de la selección de vínculos.
  1. Si AutoCAD está cerrado, inicie el programa, abra el dibujo Parcelas2.dwg y efectúe un ZOOM Extensión (Extents) para ver el dibujo completo en el área gráfica.
  2. Si la paleta del Administrador de Conexión BD no está abierta, pulse la combinación de teclas Ctrl+6 para abrirla.
  3. Si el origen de datos Parcelas no está conectado, haga clic con el botón derecho del ratón sobre el origen de datos Parcelas para acceder al menú contextual y seleccione la opción Conectar.
  4. Disponga la paleta del Administrador de Conexión BD de modo que esté anclada en el lado derecho de la ventana de AutoCAD. Después, pulse el botón derecho del ratón sobre la plantilla DATOS_PARCELASVínculo1 y seleccione la opción Seleccionar vínculos que abrirá el correspondiente cuadro de diálogo.
  5. Active la opción Seleccionar en dibujo < que se encuentra en la parte superior del cuadro de diálogo.
  6. Haga clic en el botón Seleccionar. El cuadro de diálogo se ocultará temporalmente para permitir la designación de objetos en el dibujo. Utilice una Captura (Crossing), seleccione las parcelas de la mitad de derecha del dibujo y pulse Intro para terminar la designación de objetos. Al regresar al cuadro de diálogo, observe las casillas Objetos y Registros donde deberá figurar un número próximo a 40.
  7. Despliegue la lista Realizar en la parte superior del cuadro de diálogo y seleccione la opción Intersecar.
  8. Ahora, active la casilla Usar consulta.
  9. Asegúrese de que esté seleccionada la ficha Consulta rápida en la zona central del cuadro de diálogo, seleccione el elemento SUPERFICIE en la lista Campo, la opción < Menor que en la lista Operador y escriba 1250 en la casilla Valor.
  10. Pulse el botón Ejecutar. AutoCAD aplicará esta consulta sobre la tabla y seleccionará todos los registros para los que el campo SUPERFICIE tenga un valor inferior a 1250. Además, el conjunto de registros seleccionados por la consulta se intersecará con el conjunto de registros resultante de la designación de objetos en el dibujo que efectuamos en la operación anterior, obteniendo así el conjunto de registros definitivo, cuyo número figurará ahora en las casillas Objetos y Registros del cuadro de diálogo.
  1. Asegúrese de que estén activadas las casillas Indicar registros en visor de datos e Indicar objetos en dibujo.
  2. Por último, pulse el botón Finalizar.
Los objetos del dibujo que formaban parte del conjunto de selección y que cumplían la condición de la consulta habrán quedado seleccionados y sus registros correspondientes se mostrarán en el Visor de datos.


Exportación de vínculos

La exportación de vínculos es una función del Administrador de Conexión BD que permite extraer información a partir de los vínculos de un conjunto de selección de objetos. Se dispone de tres métodos de exportación: a un archivo delimitado por comas, a un archivo delimitado por espacios y a una nueva tabla de la base de datos. Los dos primeros crean un archivo de texto en el disco, mientras que el tercero crea una nueva tabla en el archivo de la base de datos. En cualquiera de ellos se puede escoger las columnas de la tabla vinculada que serán exportadas y se añade una columna adicional que contiene el identificador (handle) de cada objeto (el identificador de un objeto es un número hexadecimal que permite localizarlo unívocamente en el dibujo).

Esta función puede resultar muy útil cuando se necesite guardar la información sobre un conjunto de objetos para utilizarla posteriormente. Imaginemos, por ejemplo, que se requiera ejecutar frecuentemente consultas sobre las parcelas del lado Este del polígono. La creación de las consultas se facilitaría si esa información estuviera guardada en la base de datos, eliminando así la necesidad de seleccionar las parcelas cada vez que se cree la consulta, como veremos en el siguiente ejemplo.

La exportación de vínculos solamente se puede realizar desde el menú desplegable Conexión BD, seleccionando el submenú Vínculos y la opción Exportar vínculos o por medio del comando DBCEXPORTLINKS. Recuerde que puede hacer visible la barra de menús utilizando la opción Mostrar barra de menús en el menú desplegable de personalización de la barra de herramientas de acceso rápido o bien asignando el valor 1 a la variable de sistema MENUBAR.
  1. Con la barra de menús visible, despliegue el menú Conexión BD, seleccione el submenú Vínculos y la opción Exportar vínculos. AutoCAD solicitará la designación de los objetos cuyos vínculos deban ser exportados.
  2. Seleccione las parcelas de la mitad derecha del dibujo y pulse Intro.
  3. En el cuadro de diálogo Exportar vínculos, despliegue la lista Tipo y seleccione la opción formato de base de datos original, escriba LADO_ESTE en la casilla Nombre y pulse el botón Guardar.
Esta operación creará una nueva tabla LADO_ESTE, que se añadirá bajo el nodo Parcelas en el Administrador de Conexión BD.
  1. Ahora, haga clic con el botón derecho sobre la tabla DATOS_PARCELAS en el Administrador de Conexión BD y seleccione la opción Nueva consulta en el menú contextual. Se abrirá el cuadro de diálogo Nueva consulta.
  1. Acepte el nombre DATOS_PARCELASConsulta1 propuesto por defecto y pulse en el botón Continuar para abrir el cuadro de diálogo Editor de consultas.
  2. Seleccione la ficha Consulta SQL y escriba la siguiente sentencia en el área de texto
    SELECT * FROM DATOS_PARCELAS WHERE SUPERFICIE < 1250
    AND ID_REF IN ( SELECT ID_REF FROM LADO_ESTE )
  3. Active las casillas Indicar registros en visor de datos e Indicar objetos en dibujo.
  1. Pulse el botón Ejecutar.
Si todo ha ido bien, esta operación habrá producido exactamente el mismo resultado que el ejemplo anterior, donde hicimos uso de la selección de vínculos. Observe que la sentencia SQL que hemos utilizado hace referencia a dos tablas diferentes, lo que sólo puede hacerse en la ficha Consulta SQL del Editor de consultas.

Ir a 6ª parte ...


0 comentarios: