Inicio > Axapta > El particular estamento While Select de Axapta

El particular estamento While Select de Axapta

whileX++ usa el estamento Select para obtener registros desde la base de datos.

El estamento Select se escribe desde código como cualquier otro estamento X++. Antes de usar un estamento select debemos declarar primero las variables para las tablas de la base de datos a las cuales hará referencia.

En X++ una variante del estamento while, while select, nos permite crear una iteración que nos vaya obteniendo todos los registros que cumplan un determinado criterio. El criterio de selección se define usando expresiones basadas en operadores y variables.

Hay que tener en cuenta que el tipo base str no puede usarse en las expresiones dado que su longitud es indefinida. Para los strings debemos usar los tipos de datos extendidos.

 
static void SelectStament(Args _args) {
 CustTable custTable;
 CustTrans custTrans;
 TransDate fromYear = SystemDateGet();
 ;
 while select custTable join custTrans
     where custTrans.accountNum == CustTable.accountNum &&
           custTrans.transDate  >= fromYear
     {
          info(strfrm("%1 %2",
               custTable.accountNum,
               custTrans.transDate);
     }
 }

Vemos en el ejemplo como usar el estamento select en X++. Las tablas CustTable y TransTable están relacionadas, los registros de CustTrans que tengan una fecha de transacción mayor o igual a la fecha del sistema que obtenemos con la llamada a la función SystemDateGet() serán devueltos.

Destacamos que se declara la variable que contendrá el valor que nos devuelve SystemDateGet(). Con ello conseguimos no utilizar directamente SystemDateGet() en el select, lo cual relentizaría el proceso pues la llamada a SytemDateGet() se ejecutaría en cada iteración.

El estamento select de X++ no es precisamente lo mismo que el estamento select del SQL Standard. Además X++ no implementa todas las palabras claves del SQL Standard. Si estamos acostumbrados a escribir estamentos SQL, debemos de familiarizarnos con el estamento select de X++.

En próximas entradas iremos publicando todas las palabras claves disponibles en X++ para el estamento select.

Categorías: Axapta
  1. No hay comentarios aún.
  1. No trackbacks yet.

Deja un comentario