Combinar datos de BD
En las asignaciones de datos que leen datos de bases de datos, podrá combinar objetos de la base de datos, como tablas o vistas, con solo añadir un componente de combinación a la asignación. Por ejemplo, puede combinar datos de dos o más tablas vinculadas por medio de relaciones de clave foránea, la manera más corriente de almacenar datos en bases de datos relacionales. El resultado sería idéntico al que se obtendría si se ejecutara una consulta SQL que uniera dos o más tablas por medio de una operación INNER JOIN en la base de datos.
Dependiendo del tipo de datos que se conecten al componente de combinación, la operación de combinación puede tener lugar en el modo estándar (no SQL) o en el modo SQL. Las combinaciones en modo no SQL las lleva a cabo MapForce, mientras que las combinaciones en modo SQL las lleva a cabo la base de datos en la que lee datos la asignación.
Las combinaciones en modo no SQL son más flexibles porque admiten más tipos de componentes de entrada (p. ej. la combinación puede ser entre tablas de bases de datos distintas o entre estructuras XML y tablas de base de datos). Para ver un ejemplo de combinación no SQL consulte el apartado Ejemplo: combinar estructuras XML. Por otro lado, las combinaciones no SQL exige al motor de asignación comparaciones que requieren un gran uso de memoria (porque el número total de comparaciones representa la combinación cruzada o producto cartesiano de todas las estructuras combinadas). Este proceso se lleva a cabo a gran velocidad por lo general y no se aprecia en las asignaciones que no hacen un uso intensivo de los datos. Sin embargo, si los orígenes de datos combinados están compuestos por un gran número de registros, puede que la asignación necesite mucho tiempo para ejecutarlos. Si la asignación que tiene entre manos debe procesar un gran número de registros, considere obtener una licencia de MapForce Server Advanced Edition, que optimiza especialmente las combinaciones para acelerar la ejecución de asignaciones de datos.
Las combinaciones en modo SQL solamente aceptan determinados objetos de base de datos como entrada (p. ej. tablas o vistas), así que no son tan flexibles como las combinaciones no SQL. Sin embargo, ofrecen un mayor rendimiento de la asignación porque la base de datos las ejecuta de forma nativa. Para más información, consulte el apartado Combinaciones en modo SQL.
Nota: El uso de un componente de combinación no es la única forma de unir tablas o vistas de una base de datos. En el caso de las bases de datos, las combinaciones también pueden hacerse mediante instrucciones SELECT de SQL (consulte Instrucciones SQL SELECT como tablas virtuales). Una diferencia importante entre las instrucciones SELECT de SQL y los componentes de combinación es que las primeras se escriben manualmente, por lo que pueden ofrecer una mayor flexibilidad. Los componentes de combinación son una alternativa más sencilla si no se siente cómodo escribiendo instrucciones SQL a mano.
Para agregar un componente de combinación:
1.Configure el lenguaje de transformación Built-In (para ello, haga clic en el botón
de la barra de herramientas o utilice el comando de menú Resultados | Motor de ejecución integrado).
2.En el menú Insertar, haga clic en Combinar. También puede hacer clic en el botón Combinar (
) de la barra de herramientas. El componente de combinación aparece en la asignación de datos. De forma predeterminada, admite datos procedentes de dos estructuras, por lo que cuenta con dos entradas de nodes/rows. Si es necesario, puede añadir nuevas entradas a la combinación haciendo clic en el botón Agregar entrada (
), consulte Combinación de tres o más estructuras.

3.Conecte las estructuras que se vayan a unir con los elementos de nodes/rows del componente de combinación.
4.Añada la condición para la combinación (o varias condiciones). Para ello, haga clic con el botón derecho en el componente de combinación y seleccione Propiedades. Las condiciones de combinación también pueden añadirse directamente desde la asignación, conectando el resultado booleano de alguna función al elemento condition del componente de combinación. En determinados casos, cuando se realizan combinaciones entre tablas de una base de datos, MapForce puede crear automáticamente la condición (o las condiciones) de combinación. Para más información, consulte Agregar condiciones de combinación.
Notas:
•Los componentes de combinación son compatibles cuando el lenguaje de destino de la asignación está configurado en Built-In. No se admite la generación de código en C#, C++ o Java.
•Cuando usted valide la asignación, si una estructura no es una fuente de entrada válida o compatible para la combinación, MapForce muestra indicaciones, ya sea inmediatamente en la propia asignación o en la ventana Mensajes (consulte Validar asignaciones).
•Los componentes de combinación no deben conectarse a parámetros de entrada ni a resultados de funciones inline definidas por el usuario. Si existen dichas conexiones, se producirán errores de validación durante la validación de la asignación.
•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 automáticamente el botón Modo SQL (
). Cuando está habilitado, este botón ofrece funciones especiales de SQL aplicables a la operación de combinación (consulte Combinaciones en Modo SQL).
•El resultado del elemento joined no se puede conectar a otro componente de combinación. No obstante, si fuera necesario, puede conectar un resultado parcial de una combinación con otra.