Sentencia FOR

La sentencia FOR se repite por una lista (por ejemplo, una matriz de mensajes).

SINTAXIS

Para cada repetición, la sentencia FOR hace que la variable de correlación (nombre_correlación en el diagrama de sintaxis) sea igual que el miembro actual de la lista (referencia_campo) y luego ejecuta el bloque de sentencias. La ventaja de la sentencia FOR es que repite por una lista sin tener que escribir ningún tipo de construcción en bucle (y elimina la posibilidad de bucles infinitos).

Por ejemplo, el ESQL siguiente:
SET OutputRoot.MQMD=InputRoot.MQMD;

SET Environment.SourceData.Folder[1].Field1 = 'Field11Value';
SET Environment.SourceData.Folder[1].Field2 = 'Field12Value';
SET Environment.SourceData.Folder[2].Field1 = 'Field21Value';
SET Environment.SourceData.Folder[2].Field2 = 'Field22Value';

DECLARE i INTEGER 1;
FOR source AS Environment.SourceData.Folder[] DO
     CREATE LASTCHILD OF OutputRoot.XML.Data.ResultData.MessageArrayTest.Folder[i] 
            NAME 'FieldA' VALUE '\' || source.Field1 || '\' || CAST(i AS CHAR);

     CREATE LASTCHILD OF OutputRoot.XML.Data.ResultData.MessageArrayTest.Folder[i] 
            NAME 'FieldB' VALUE '\' || source.Field2 || '\' || CAST(i AS CHAR);
     SET i = i + 1;
END FOR;
genera el mensaje de salida:
<Data>
 <ResultData>
  <MessageArrayTest>
   <Folder>
    <FieldA>Field11Value1</FieldA>
    <FieldB>Field12Value1</FieldB>
   </Folder>
   <Folder>
    <FieldA>Field21Value2</FieldA>
    <FieldB>Field22Value2</FieldB>
   </Folder>
  </MessageArrayTest>
 </ResultData>
</Data>
Conceptos relacionados
Visión general de ESQL
Tareas relacionadas
Desarrollo de ESQL
Referencia relacionada
Diagramas de sintaxis: tipos disponibles
Sentencias ESQL
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ak05030_