Personalizar instrucciones SELECT
MapForce permite crear instrucciones SELECT personalizadas de SQL con o sin parámetros. Estas instrucciones se muestran como estructuras tipo tabla de las que se pueden asignar datos a otros componentes. Por ejemplo, puede crear una instrucción personalizada para combinar tablas, filtrar su datos de la BD y definir parámetros que pueden aceptar valores de otros componentes de la asignación.
Las instrucciones SQL SELECT sin parámetros son compatibles con los lenguajes C++, C#, Java y BUILT-IN. Las instrucciones SQL SELECT con parámetros de entrada sólo son compatibles con el lenguaje de transformación BUILT-IN.
Crear/Editar/Quitar una instrucción SELECT
Para agregar una instrucción SELECT a un componente de BD, siga las instrucciones siguientes:
1.Haga clic con el botón derecho en el encabezado del componente de BD y seleccione Agregar/Editar/Quitar objetos de BD en el menú contextual. También puede seleccionar el componente de BD y seleccionar el comando Componente | Agregar/Editar/Quitar objetos de BD.
2.En el cuadro de diálogo Agregar/Editar/Quitar objetos de BD, escoja una de las siguientes opciones:
oPara introducir una instrucción SELECT personalizada, haga clic en el botón Agregar/Editar instrucciones SELECT.
oPara generar una instrucción SELECT para una tabla particular, haga clic con el botón derecho en la tabla relevante y seleccione Generar y agregar una instrucción SELECT del menú contextual. Podrá editar la instrucción generada más adelante.
Para editar una instrucción SELECT que ya existe, escoja una de las siguientes opciones:
•Haga clic con el botón derecho en la instrucción SELECT en el componente y seleccione Editar instrucciones SELECT.
•Haga clic con el botón derecho en el componente de BD y seleccione Agregar/Editar/Quitar objetos de BD en el menú contextual. Después, haga doble clic en la instrucción SELECT en cuestión en el cuadro de diálogo Agregar/Editar/Quitar objetos de BD.
•En el cuadro de diálogo Agregar/Editar/Quitar objetos de BD, seleccione la instrucción SELECT en cuestión y haga clic en Agregar/Editar instrucciones SELECT.
•En el cuadro de diálogo Agregar/Editar/Quitar objetos de BD, haga clic con el botón derecho en la instrucción SELECT en cuestión y seleccione Editar una instrucción SELECT.
Para quitar una instrucción SELECT, siga los pasos siguientes:
1.Haga clic con el botón derecho en el componente de BD y seleccione Agregar/Editar/Quitar objetos de BD.
2.Haga clic con el botón derecho en la instrucción SELECT que quiere eliminar y seleccione Quitar instrucciones SELECT en el menú contextual.
Importante:
Tenga en cuenta que:
•Todas las expresiones en la instrucción SELECT deben tener un nombre de correlación único (p.ej., SELECT *, (Quantity*UnitPrice) AS Price) para que se puedan usar en una asignación.
•Si se conecta a una base de datos Oracle o IBM DB2 con JDBC, la instrucción SELECT no puede tener un punto y coma al final.
Instrucciones SELECT de SQL sin parámetros
En el ejemplo que se puede ver a continuación, mostramos cómo trabajar con instrucciones SELECT personalizadas sin parámetros. En la asignación de datos que se puede ver a continuación, asignamos datos de BD a un archivo de texto. La base de datos BookCatalog.sqlite tiene una tabla principal llamada Authors y una tabla secundaria llamada Books. Sin embargo, sólo la instrucción SELECT con estructura jerárquica se mostrará en el componente. La estructura de la jerarquía depende de la consulta SQL que se define en el cuadro de diálogo Introducir una instrucción SQL SELECT. Las tablas Authors y Books no están en el componente porque no se asignan datos de estas mismas.
Instrucción SELECT
Para el componente de BD, hemos añadido la siguiente instrucción SELECT (consulte las instrucciones en el apartado Crear/Editar/Quitar una instrucción SELECT):
La instrucción SQL selecciona todas las tablas de la tabla Authors y filtra los datos de BD para incluir sólo autores y autoras del Reino Unido. Cuando se agregue esta instrucción al cuadro de diálogo Introducir una instrucción SQL SELECT, esta estará disponible en el cuadro de diálogo Agregar/Editar/Quitar objetos de BD (ver imagen siguiente). También se puede ver la instrucción en el componente de BD (ver la asignación anterior). La cantidad de líneas visibles de las instrucciones SELECT se puede configurar en el cuadro de diálogo Opciones (en la opción Limitar vista de anotaciones).
Resultados
Los resultados muestran una lista de valores separados por comas que incluyen autores y autoras del Reino Unido (véase el extracto de código más abajo).
Autor/a, País, Página web
Bram Stoker,UK,www.bramstoker.org
Charles Dickens,UK,www.charlesdickensinfo.com
Emily Brontë,UK,n/a
James Herbert,UK,www.james-herbert.co.uk
Neil Gaiman,UK,www.neilgaiman.com
Terry Pratchett,UK,www.terrypratchettbooks.com
Agatha Christie,UK,www.agathachristie.com
Roald Dahl,UK,www.roalddahlfans.com
David Walliams,UK,www.worldofdavidwalliams.com
Kenneth Grahame,UK,n/a
Philip Pullman,UK,www.philip-pullman.com
J.K. Rowling,UK,www.jkrowling.com
Ann Cleeves,UK,www.anncleeves.com
Instrucciones SELECT de SQL con parámetros
Nuestro segundo ejemplo ilustra una asignación en la que el componente de BD incluye una instrucción SELECT personalizada con un parámetro (ver imagen siguiente).
Instrucción SELECT
Para el componente BookCatalog, hemos añadido la siguiente instrucción SQL:
La instrucción usa el parámetro Country. Este parámetro aceptará valores de la constante (bajo el componente BookCatalog). Para poder asignar datos de la instrucción SELECT con el parámetro, haga clic en el botón junto al nodo SELECT_Statement en el componente de BD (ver asignación anterior) y seleccione Insertar llamada con parámetros del menú contextual. De esta manera se inserta un componente de llamada con parámetros (el componente central de la asignación anterior). El componente de llamada tiene dos partes: La parte izquierda acepta parámetros de entrada (en nuestro caso, Country), y la parte derecha replica la instrucción SELECT con la estructura jerárquica del componente de BD. Después, los datos filtrados se asignan al archivo de texto Authors.
Resultados
Ahora, los resultados muestran autores y autoras de EEUU (ver el extracto de código a continuación).
Autor/a, País, Página web
Stephen King,US,www.stephenking.com
Frank Herbert,US,n/a
Isaac Asimov,US,www.asimovonline.com
Blake Crouch,US,www.blakecrouch.com
Ray Bradbury,US,www.raybradbury.com
Joe Hill,US,www.joehillfiction.com
Josh Malerman,US,www.joshmalerman.com
George R. R. Martin,US,www.georgerrmartin.com
A. J. Finn,US,n/a
Dan Brown,US,www.danbrown.com
Dean Koontz,US,www.deankoontz.com
Archivos de ejemplo
Para más información sobre asignaciones de datos que usan instrucciones SQL SELECT como entrada, consulte los siguientes ejemplos en la carpeta MapForceExamples:
•DB_EmployeeListByTitle.mfd
•DB_MostExpensiveArticle.mfd
•DB_ManagerList_AllOffices.mfd
•DB_ManagerList_SelectedDepartment.mfd
•DB_ManagerList_SelectedOffice.mfd