Altova MapForce 2025 Professional Edition

Cuando conecte componentes de base de datos (tablas o vistas, por ejemplo) a un componente de combinación directamente, en la esquina superior derecha del componente de combinación aparece el botón Modo SQL mf_ic_join_sql_enabled. Cuando el modo SQL está activado, la operación de combinación la realiza la base de datos de la que la asignación lee los datos. En otras palabras, MapForce enviará internamente a la base de datos una consulta con la sintaxis SQL adecuada para seleccionar y combinar los datos de todas las tablas que participan en la combinación. Es importante destacar que no necesita escribir ningún SQL. La consulta necesaria se produce en función de cómo haya diseñado visualmente el componente de combinación en la asignación, como verá en los ejemplos siguientes.

 

Para poder trabajar en modo SQL, deben cumplirse las siguientes condiciones:

 

1.Los dos objetos (tablas o vistas) que se van a combinar deben proceder de la misma base de datos.

2.Los dos objetos que se van a combinar deben proceder del mismo componente MapForce. (Tenga en cuenta que puede agregar/eliminar rápidamente objetos de base de datos en un componente del siguiente modo: clic con el botón derecho en el componente de base de datos y seleccione Agregar/Eliminar/Editar objetos de 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 (ver 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 utiliza en un componente de destino, ninguna de las tablas combinadas puede estar conectada directa o indirectamente a ningún nodo primario de destino. Para más información sobre cómo se ejecuta una asignación de datos, consulte Reglas y estrategias de asignación de datos.

 

Puede ver o controlar el modo SQL con el botón SQL ( mf_ic_join_sql ) situado en la esquina superior derecha del componente de combinación, como se indica a continuación:

 

mf_ic_join_sql

El modo SQL está deshabilitado (MapForce o, en su caso, MapForce Server se encargará de ejecutar la combinación).

mf_ic_join_sql_enabled

El modo SQL está habilitado (la base de datos se encargará de ejecutar la combinación).

 

Si falta el botón mf_ic_join_sql, significa que el modo SQL no tiene sentido o no es compatible con los datos que se están combinando.

 

En algunos casos, el modo SQL debe deshabilitarse explícitamente ( mf_ic_join_sql ), por ejemplo:

 

Cuando su asignación de datos requiera 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 condición del combinación).

Cuando desee unir tablas de diferentes bases de datos. 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 mf_ic_join_sql_enabled, hay varias maneras de combinar varias tablas o vistas de BD en una:

 

COMBINACIÓN INTERNA: el componente de combinación solo devuelve los registros que cumplan la condición en ambos conjuntos de entrada.

COMBINACIÓN EXTERIOR IZQUIERDA: el componente de combinación incluye todos los registros de la tabla situada más a la izquierda (en MapForce, esta es la tabla situada más arriba de un componente de combinación), así como los registros de la tabla que se combina posteriormente y que cumplen 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:

 

Combinación interna mff_ic_inner_join

Combinación izquierda mff_ic_left_join

 

Para ver información rápida sobre la combinación mueva el cursor del ratón sobre el icono:

mff_view_join_mode

Para cambiar el modo de combinación, elija una opción:

 

Haga clic en el icono Combinación interna mff_ic_inner_join o Combinación izquierda mff_ic_left_join situado delante de cada tabla o vista combinada y seleccione Combinación interna o Combinación externa izquierda en el menú contextual.

Haga clic con el botón derecho en la segunda (o tercera, cuarta, etc.) tabla o vista combinada del componente de combinación y seleccione Tipo de combinación | Combinación interna o Tipo de combinación | Combinación exterior izquierda en el menú contextual.

mff_join_mode

Nota:

 

Si cambia el modo de combinación a COMBINACIÓN EXTERIOR IZQUIERDA, 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 INNER JOIN o LEFT JOIN afectan a los resultados de una consulta SQL en una BD.

 

Nombres de alias

A menudo ocurre que las tablas o vistas de bases de datos combinadas contienen nombres de campo idénticos en ambas estructuras combinadas. 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).

 

El campo del alias o los nombres de las tablas 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 del 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 se permite usar componentes WHERE/ORDER de SQL entre una tabla de base de datos y el componente de combinación. Solo pueden agregarse después (pero no antes) de un componente de combinación. Para más información consulte el apartado Filtrar y ordenar datos de BD (SQL WHERE/ORDER).

© 2018-2024 Altova GmbH