Combinaciones en modo SQL
Cuando se conectan los componentes de base de datos apropiados (p. ej. tablas o vistas) a un componente de combinación, en la esquina superior derecha del componente de combinación aparece el botón Modo SQL . Cuando se habilita el modo SQL, la operación de combinación la lleva a cabo la base de datos de la que lee datos la asignación. En otras palabras, MapForce enviará una consulta a la base de datos compuesta con la sintaxis SQL adecuada para seleccionar y combinar datos de todas las tablas que participan en la combinación. Y, lo que es más importante, no será necesario escribir código SQL porque la consulta se produce en base al diseño visual que tenga el componente de combinación en la asignación de datos (ver ejemplos más abajo).
Para poder habilitar el modo SQL deben cumplirse estos requisitos:
1.Los dos objetos que se deben combinar (tablas o vistas) deben ser de la misma base de datos.
2.Los dos objetos que se deben combinar deben proceder del mismo componente de MapForce (recuerde que puede agregar/quitar objetos de base de datos de un componente haciendo clic con el botón derecho en el componente y seleccionando Agregar, quitar o editar objetos de la base de datos en el menú contextual).
3.La condición (o las condiciones) de combinación debe definirse desde las propiedades del componente solamente (haciendo clic con el botón derecho en el componente de combinación y seleccionando Propiedades) y no en la asignación (véase Agregar condiciones de combinación).
Nota: | cuando se combinan tablas de base de datos en modo SQL, MapForce crea las condiciones de combinación automáticamente a partir de las relaciones de clave foránea detectadas entre las tablas. Para que MapForce pueda crear condiciones de combinación automáticas las tablas de la base de datos deben estar en una relación secundario/primario en el componente de MapForce (es decir, una tabla debe ser el primario o secundario de otra tabla en el componente). Consulte el apartado Ejemplo: combinar tablas en modo SQL para obtener más información. |
4.Las tablas de la base de datos no pueden estar todavía en el contexto de destino actual. Cuando el resultado de la combinación se usa en un componente de destino ninguna de las tablas combinadas puede estar conectada directa o indirectamente a ninguno de los nodos primarios de destino. Para más información consulte Reglas y estrategias de asignación de datos.
El modo SQL se puede controlar y consultar con ayuda del botón SQL situado en la esquina superior derecha del componente de combinación:
El modo SQL está deshabilitado (la combinación la ejecutará MapForce o, si procede, MapForce Server). | |
El modo SQL está habilitado (la combinación la ejecutará la base de datos). |
Si falta el botón , significa que el modo SQL no es relevante o no es compatible con los datos que se pretenden combinar.
En algunos casos es necesario deshabilitar el modo SQL explícitamente, por ejemplo:
•Cuando la asignación necesite condiciones de combinación fuera de las propiedades del componente de combinación (es decir, condiciones definidas en la asignación y conectadas al elemento condition del componente de combinación).
•Cuando necesite combinar tablas de bases de datos distintas. En este caso deberá usar una combinación estándar (no SQL).
Cambiar el modo de combinación
Cuando el componente de combinación está en Modo SQL puede combinar varias tablas o vistas de BD en una de varias formas:
•Vínculo interno: el componente de combinación solo devuelve los registros que cumplan la condición en ambos conjuntos de entrada.
•Vínculo externo izquierdo: el componente de combinación incluye todos los registros de la tabla más a la izquierda (en MapForce esta es la tabla más alta de un componente de combinación), además de los registros de la tabla que se combina posteriormente y que cumplan con la condición de combinación.
Para ver el modo de combinación de una tabla o vista en el componente de combinación, observe el icono que aparece junto a la tabla o vista combinada. Estos iconos pueden aparecer en cualquier tabla combinada excepto en la primera:
•Vínculo interno
•Vínculo externo izquierdo
Para ver información rápida sobre la combinación mueva el cursor del ratón sobre el icono:
Para cambiar el modo de combinación elija una opción:
•Haga clic en el icono Vínculo interno o Vínculo externo izquierdo que hay en cada tabla o vista combinadas y seleccione Vínculo interno o Vínculo externo izquierdo en el menú contextual.
•Haga clic con el botón derecho en la segunda (o tercera, cuarta, etc.) tabla o vista combinadas en el componente de combinación y seleccione Tipo de vínculo | Vínculo interno o Tipo de vínculo | Vínculo externo izquierdo en el menú contextual.
Tenga en cuenta que:
•Si cambia el modo de combinación al vínculo externo izquierdo, entonces la tabla o vista superior representa la parte izquierda de la combinación.
•Cambiar el modo de combinación afecta a los datos que devuelve el componente de combinación de la misma forma que el vínculo interno o el vínculo externo izquierdo afectan a los resultados de una consulta SQL en una BD.
Nombres de alias
A menudo las tablas o vistas de base de datos combinadas contienen nombres de campo idéntico en ambas estructuras. Cuando se habilita el modo SQL, estos elementos aparecen en el componente con el prefijo "AS". Por ejemplo, si dos tablas combinadas contienen un campo llamado "id", este campo aparecerá como "id" en la primera tabla combinada y como "id AS id2" en la segunda tabla combinada. Las tablas combinadas también pueden dar lugar a nombres de alias (p. ej. cuando se combina una tabla consigo misma).
Los nombres de alias de campo o de tabla son importantes para hacerles referencia más adelante en la asignación. Por ejemplo, imagínese que quiere filtrar u ordenar el resultado de la combinación. Para conseguirlo deberá conectar el resultado del componente de combinación a un componente WHERE/ORDER de SQL, donde deberá introducir las cláusulas WHERE y ORDER BY de SQL.
Para hacer referencia al campo desde la cláusula WHERE deberá escribir el nombre de la tabla seguido de un punto y del nombre del campo. Para hacer referencia al alias de una tabla deberá usar el nombre de alias tal y como aparece en el componente de combinación. En la cláusula ORDER BY podrá usar la misma técnica (tabla.campo) o escribir solo el nombre de alias de campo (el nombre que aparece después de "AS").
Para ver una asignación que utilice cláusulas WHERE/ORDER de SQL consulte el apartado Ejemplo: combinar tablas en modo SQL.
Nota: | no está permitido crear componentes WHERE/ORDER de SQL entre una tabla de base de datos y el componente de combinación. Es decir, solamente se pueden añadir después (pero no antes) del componente de combinación. Para más información consulte el apartado Filtrar y ordenar datos de BD (SQL WHERE/ORDER). |