Buscar en este blog

lunes, 21 de febrero de 2011

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

Editar los datos de las tablas

Cuando la ventana del Visor de datos se abre en modo de edición es posible modificar la información contenida en la tabla. Se puede añadir o eliminar filas (registros), modificar directamente el contenido de las celdas o buscar un determinado valor y sustituirlo por otro.

Las operaciones de edición efectuadas sobre los datos no se transmiten inmediatamente al archivo original de la base de datos, sino que es preciso validar las operaciones efectuadas. La validación puede hacerse expresamente, mediante la opción Validar del menú contextual del encabezado de rejilla, o implícitamente al cerrar el Visor de datos o al abrir una nueva tabla. Si, por el contrario, se desea anular las operaciones de edición que hayan sido realizadas, es necesario seleccionar la opción Restituir en el menú contextual del encabezado de rejilla.

Con el fin de facilitar el seguimiento de las modificaciones efectuadas en los datos, las filas modificadas se marcan en su correspondiente encabezado de registro con un icono de edición (la letra griega delta). El icono de edición también se añade al encabezado de rejilla en el momento de efectuar la primera modificación.
  1. Si AutoCAD está cerrado, inicie el programa con un dibujo nuevo o abriendo un dibujo cualquiera.
  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. Haga clic con el botón derecho del ratón sobre la tabla DATOS_PARCELAS y seleccione la opción Editar tabla en el menú contextual. Esta operación abrirá la tabla en modo de edición.
  5. Comencemos por modificar el valor de una celda. Haga clic sobre la celda Electromotor 99 y sustituya su valor por Motores Eléctricos S.A.
  6. Pulse el botón derecho del ratón sobre el encabezado de cualquier registro (fila) y seleccione la opción Añadir nuevo registro en el menú contextual. AutoCAD añadirá un nuevo registro en blanco al final de la tabla.
  7. Escriba los siguientes valores en sus correspondientes celdas:
    ID_REF:2945-12-42-75
    EMPRESA:Iberdrola S.A.
    PARCELA:113
    CALLE:Córdoba
    SUPERFICIE: 1266.17
    VALOR:21798
    TIPO:R
La opción Añadir nuevo registro sólo está disponible en el menú contextual de los encabezados de registros.

Cuando se inicia la edición de una celda, aparece un icono en forma de lápiz sobre el encabezado del registro correspondiente para indicar que está siendo modificado. El icono del lápiz es sustituido por el de edición (la letra griega delta) al finalizar la edición del registro, lo que tiene lugar cuando se sitúa el cursor en un registro diferente utilizando el ratón o las teclas de desplazamiento del cursor.

Veamos ahora cómo podemos reemplazar de forma automática los valores de una o varias celdas pertenecientes a la misma columna.
  1. Sitúe el cursor en la primera celda de la columna TIPO.
  2. Pulse el botón derecho del ratón y seleccione la opción Reemplazar en el menú contextual. Se abrirá el cuadro de diálogo Reemplazar y la casilla Buscar se habrá rellenado automáticamente con el contenido de la celda (la letra B).
  3. Escriba una E en la casilla Reemplazar por y pulse el botón Reemplazar todo.
  4. Cierre el cuadro de diálogo haciendo clic en el botón Cancelar.
Todos los registros afectados por la modificación que acabamos de realizar mostrarán el icono de edición.

La opción Reemplazar está disponible en el menú desplegable Vista de datos, en el menú contextual de los encabezados de columnas y también puede iniciarse por medio del comando DVREPLACE.

Para eliminar uno o varios registros basta seleccionarlos, haciendo clic en sus encabezados correspondientes, y pulsar la tecla Supr, o bien seleccionar la opción Suprimir registro en el menú contextual de los encabezados de registro. En este sentido conviene recordar que las teclas Mayús y Ctrl permiten seleccionar varios registros consecutivos y/o alternos. Los registros suprimidos desaparecen del Visor de datos pero no se eliminan físicamente de la tabla original mientras la operación no sea validada (al cerrar la tabla o al seleccionar la opción Validar en el menú contextual del encabezado de rejilla).
  1. Pulse el botón derecho del ratón con el puntero situado sobre el encabezado de rejilla y seleccione la opción Validar en el menú contextual. Esta operación cierra el Visor de datos y guarda en la tabla original todos los cambios efectuados.


Vincular datos con los objetos del dibujo

La vinculación de objetos del dibujo con registros de las tablas es la función más importante de cuantas ofrece el entorno de conectividad de AutoCAD. Para poner en práctica esta función utilizaremos un dibujo de ejemplo (Parcelas.dwg) que representa las parcelas de un polígono industrial. La información de cada parcela (superficie, valor, empresa que la ocupa, etc.) está recogida en la base de datos Parcelas.mdb, que hemos venido utilizando para practicar la visualización y modificación de datos. El siguiente paso será la vinculación de cada parcela del dibujo con su registro correspondiente en la tabla DATOS_PARCELAS.

Es importante poner de manifiesto que la tabla está diseñada de modo que cada registro pueda ser identificado de manera única por medio del valor de la columna ID_REF. Para poder vincular objetos del dibujo con registros de una tabla es preciso que cada registro pueda ser localizado sin ambigüedad, bien mediante el valor de una sola columna o bien mediante la combinación de valores de dos o más columnas. Esta columna o columnas se conocen con el nombre de clave primaria o simplemente clave.

Un vínculo es un conjunto de información que se guarda en el objeto del dibujo y que permite localizar un determinado registro en una tabla externa. Cualquier objeto del dibujo puede tener asociado uno o más vínculos. La información necesaria para establecer el vínculo entre el objeto del dibujo y el registro de la tabla se compone de los siguientes elementos:
  • Origen de datos. Identifica el sistema de base de datos utilizado (Access, Oracle, SQL Server, etc.).
  • Catálogo. La base de datos; un origen de datos puede contener uno o más catálogos.
  • Esquema. El subconjunto de tablas a las que tiene acceso un determinado usuario.
  • Tabla. Una tabla de datos.
  • Columna(s) clave. Las columnas cuyos valores permiten identificar un registro.
  • Valor(es) clave. Los valores específicos que permiten localizar el registro.
Todos estos elementos representan una jerarquía de información. Un origen de datos puede contener varios catálogos, un catálogo varios esquemas, un esquema puede estar formado por varias tablas y una tabla puede contener varias columnas clave. Esta jerarquía de información viene impuesta por el estándar SQL (Structured Query Language), en el que está basado el entorno de conectividad de AutoCAD.

No es extraño, ni mucho menos, tener centenares de objetos vinculados a diferentes filas de una misma tabla. Esto significa que, para cada objeto, los valores del origen de datos, catálogo, esquema, tabla y columna clave son idénticos. Es fácil imaginar que esto daría lugar a almacenar en el dibujo una gran cantidad de información repetida. Para evitar esta situación, AutoCAD utiliza un concepto denominado plantilla de vínculos. Una plantilla de vínculos guarda toda la información relativa a un determinado vínculo, a excepción del valor clave.

De este modo, para cada objeto que se quiera vincular, sólo es necesario precisar la plantilla de vínculos que se desea utilizar y el valor o valores de las columnas clave de la tabla. Las plantillas de vínculos se guardan en el dibujo donde fueron creadas. Como veremos más adelante, existe la posibilidad de importar o exportar plantillas de vínculos entre diferentes dibujos.

Así pues, el paso previo a la vinculación de los objetos es crear una plantilla de vínculos. Puesto que las plantillas de vínculos están asociadas con una determinada tabla, es necesario conectar el origen de datos para poder crear la plantilla de vínculos. Una vez efectuada la conexión, la plantilla de vínculos se puede crear desde el correspondiente icono de la barra de herramientas del Administrador de Conexión BD, desde el menú contextual de la propia tabla, desde el menú desplegable Conexión BD o por medio del comando DBCDEFINELT.
  1. Abra el dibujo Parcelas.dwg.
  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. Pulse el botón derecho del ratón sobre la tabla DATOS_PARCELAS y seleccione la opción Nueva plantilla de vínculos en el menú contextual. Se abrirá el cuadro de diálogo Nueva plantilla de vínculos.
  5. Acepte el nombre DATOS_PARCELASVínculo 1 propuesto por defecto y haga clic en el botón Continuar. Se abrirá el cuadro de diálogo Plantilla de vínculos.
  6. Active la casilla del campo clave ID_REF.
  7. Pulse el botón Aceptar para cerrar el cuadro de diálogo.
Al finalizar esta operación se habrá creado un nuevo nodo bajo el nombre del dibujo Parcelas.dwg en el Administrador de Conexión BD. La plantilla de vínculos que hemos creado está referida a la tabla DATOS_PARCELAS y utiliza como clave la columna ID_REF.


Antes de iniciar la vinculación de los objetos es necesario abrir el Visor de datos en modo de sólo lectura o en modo de edición. En general, es preferible realizar la vinculación de objetos con el Visor de datos abierto en modo de sólo lectura con el fin de evitar cualquier posible alteración de los datos por error.

Para realizar cómodamente la vinculación de los objetos es recomendable disponer la ventana del dibujo y la del Visor de datos de modo que no queden solapadas. En este sentido, es conveniente anclar la ventana del Visor de datos en la parte inferior o superior de la ventana de AutoCAD. Para que el anclaje sea posible es preciso seleccionar la opción Permitir anclaje en el menú contextual de la barra de herramientas del Visor de datos.
  1. En el Administrador de Conexión BD, pulse el botón derecho del ratón sobre la tabla DATOS_PARCELAS y seleccione la opción Ver tabla en el menú contextual.
  2. Ahora, sitúe el puntero del ratón sobre la barra de herramientas del Visor de datos, pulse el botón derecho y compruebe que la opción Permitir anclaje esté activada. Si no lo estuviera, haga clic sobre ella para activarla.
  3. Finalmente, arrastre la ventana del Visor de datos hasta dejarla anclada en la parte inferior de la ventana de AutoCAD.
La disposición de la pantalla, después de desplazar y anclar la ventana del Visor de datos, será similar a la que muestra la figura siguiente.


Aunque, como ya hemos dicho, deberíamos vincular cada una de las parcelas del dibujo con su registro correspondiente de la tabla, por el momento nos limitaremos a vincular solamente las cuatro parcelas situadas en la parte superior izquierda del dibujo con los cuatro primeros registros de la tabla. La parcela situada más a la izquierda con el primer registro, la parcela contigua con el segundo registro, etc. Cada parcela está representada en el dibujo como una polilínea cerrada con el fin de que su perímetro constituya un solo objeto.
  1. Haga clic sobre el encabezado del primer registro de la tabla para seleccionarlo.
  2. Pulse en el icono Vincular (el primero por la izquierda) de la barra de herramientas del Visor de datos. AutoCAD solicitará la designación de los objetos con los que vincular el registro seleccionado.
  3. Designe la parcela situada en la esquina superior izquierda del dibujo y pulse Intro.
Una vez efectuada la vinculación, el registro que estaba seleccionado en la tabla quedará resaltado en color amarillo y el siguiente registro de la tabla será seleccionado automáticamente. De este modo, si la vinculación de los registros se efectúa en el mismo orden que tienen en la tabla, no es necesario seleccionar manualmente el registro que se desee vincular.
  1. Repita la operación anterior para vincular la siguiente parcela con el segundo registro de la tabla.
  2. Vincule también las dos parcelas siguientes con los registros tercero y cuarto.
  3. Guarde el dibujo con las modificaciones que hemos realizado para volver a utilizarlo más adelante.
El proceso de vinculación se puede efectuar también desde el menú desplegable Vista de datos, desde el menú contextual de los encabezados de registros y por medio del comando DVLINK. Este último método es el más eficaz cuando se vinculan registros consecutivos de la tabla, puesto que basta pulsar la barra espaciadora o la tecla Intro para repetir el comando.

Aunque en nuestro ejemplo hemos vinculando un solo registro de la tabla con un solo objeto del dibujo, es posible vincular varios registros con un solo objeto o varios objetos con un solo registro. No existe limitación alguna en este sentido.

Ir a 2ª parte ...

3 comentarios:

AMÉRICA MORALES dijo...

Una pregunta: La conexión que se realiza es solo a una tabla aunque esta se encuentre relacionada en una bd de access por ejemplo? y la forma de relacionar la bd con el objeto de forma manual es la única o existe forma de que se le agregue el atributo de clave al objeto y se pueda relacionar con la bd que se cargue ?

Gracias
ING.GEOMÄTICA AMÉRICA MORALES

LW dijo...

Las conexiones se pueden efectuar a una tabla o a una consulta de Microsoft Access. El Administrador de Conexión BD muestra todas las tablas y todas las consultas que estén definidas en el archivo MDB. Si la tabla en cuestión tiene relaciones con otras tablas, suele ser más conveniente elaborar una consulta que reúna los datos de las tablas relacionadas y efectuar las conexiones a esa consulta. Por otro lado, las herramientas que proporciona AutoCAD sólo permiten efectuar la vinculación de forma manual. Para automatizar de algún modo la vinculación sería necesario elaborar una aplicación específica en alguno de los lenguajes de programación soportados por AutoCAD (ObjectARX, .NET, AutoLISP, ...).

AMÉRICA MORALES dijo...

Muchas Gracias