4D v14

Utilizar Alias

Inicio

 
4D v14
Utilizar Alias

Utilizar Alias  


 

 

Si una búsqueda SQL es muy compleja y contiene nombres muy largos que dificultan la lectura, es posible utilizar alias para mejorar su legibilidad.
Este es el ejemplo anterior utilizando dos alias: Act para la tabla ACTORS y Cit para la tabla CITIES.

  • El código 4D inicial sería:

     ARRAY LONGINT(aSoldTickets;0)
     ARRAY TEXT(aTitles;0)
     ARRAY TEXT(aDirectors;0)
     C_LONGINT($i;$vInd)
     
     $vInd:=0
     ALL RECORDS([ACTORS])
     For($i;1;Records in selection([ACTORS]))
        $vInd:=$vInd+1
        INSERT IN ARRAY(aTitles;$vInd;1)
        aTitles{$vInd}:=[ACTORS]FirstName+" "+[ACTORS]LastName
        RELATE ONE([ACTORS]Birth_City_ID)
        INSERT IN ARRAY(aDirectors;$vInd;1)
        aDirectors{$vInd}:=[CITIES]City_Name
        NEXT RECORD([ACTORS])
     End for
      ` Inicializa el resto de las columnas del list box para mostrar la información
     ARRAY INTEGER(aMovieYear;Size of array(aTitles))
     ARRAY TEXT(aMedias;Size of array(aTitles))
     ARRAY LONGINT(aSoldTickets;Size of array(aTitles))
     ARRAY LONGINT(aNrActors;Size of array(aTitles))
     MULTI SORT ARRAY(aDirectors;>;aTitles;>;aMovieYear;aMedias;aSoldTickets;aNrActors)
  • Utilizando código SQL:

     ARRAY TEXT(aTitles;0)
     ARRAY TEXT(aDirectors;0)
     
     Begin SQL
        SELECT CONCAT(CONCAT(ACTORS.FirstName,' '),ACTORS.LastName), CITIES.City_Name
        FROM ACTORS AS 'Act', CITIES AS 'Cit'
        WHERE Act.Birth_City_ID=Cit.City_ID
        ORDER BY 2,1
        INTO :aTitles, :aDirectors;
     End SQL
      ` Inicializa el resto de las columnas del list box para mostrar la información
     ARRAY INTEGER(aMovieYear;Size of array(aTitles))
     ARRAY TEXT(aMedias;Size of array(aTitles))
     ARRAY LONGINT(aSoldTickets;Size of array(aTitles))
     ARRAY LONGINT(aNrActors;Size of array(aTitles))
  • Utilizando comandos SQL genéricos:

     ARRAY TEXT(aTitles;0)
     ARRAY TEXT(aDirectors;0)
     C_TEXT($tQueryTxt)
     
     SQL LOGIN(SQL_INTERNAL;"";"")
     $tQueryTxt:=""
     $tQueryTxt:=$tQueryTxt+"SELECT CONCAT(CONCAT(ACTORS.FirstName,' '),ACTORS.LastName), CITIES.City_Name"
     $tQueryTxt:=$tQueryTxt+" FROM ACTORS AS 'Act', CITIES AS 'Cit'"
     $tQueryTxt:=$tQueryTxt+" WHERE Act.Birth_City_ID=Cit.City_ID"
     $tQueryTxt:=$tQueryTxt+" ORDER BY 2,1"
     SQL EXECUTE($tQueryTxt;aTitles;aDirectors)
     SQL LOAD RECORD(SQL all records)
     SQL LOGOUT
      ` Inicializa el resto de las columnas del list box para mostrar la información
     ARRAY INTEGER(aMovieYear;Size of array(aTitles))
     ARRAY TEXT(aMedias;Size of array(aTitles))
     ARRAY LONGINT(aSoldTickets;Size of array(aTitles))
     ARRAY LONGINT(aNrActors;Size of array(aTitles))
  • Utilizando el comando QUERY BY SQL, no podemos efectuar la búsqueda anterior porque no es posible pasar másde una tabla como primer parámetro.
  • Utilizando el comando SQL EXECUTE IMMEDIATE:

     ARRAY TEXT(aTitles;0)
     ARRAY TEXT(aDirectors;0)
     C_TEXT($tQueryTxt)
     $tQueryTxt:=""
     $tQueryTxt:=$tQueryTxt+"SELECT CONCAT(CONCAT(ACTORS.FirstName,' '),ACTORS.LastName), CITIES.City_Name"
     $tQueryTxt:=$tQueryTxt+" FROM ACTORS AS 'Act', CITIES AS 'Cit'"
     $tQueryTxt:=$tQueryTxt+" WHERE Act.Birth_City_ID=Cit.City_ID"
     $tQueryTxt:=$tQueryTxt+" ORDER BY 2,1"
     $tQueryTxt:=$tQueryTxt+" INTO :aTitles, :aDirectors"
     Begin SQL
        EXECUTE IMMEDIATE :$tQueryTxt;
     End SQL
     ARRAY INTEGER(aMovieYear;Size of array(aTitles))
     ARRAY TEXT(aMedias;Size of array(aTitles))
     ARRAY LONGINT(aSoldTickets;Size of array(aTitles))
     ARRAY LONGINT(aNrActors;Size of array(aTitles))

Para probar todos los ejemplos anteriores, lance la base "4D SQL Code Samples" y vaya a la ventana principal. Elija el modo de consulta y presione el botón Using Aliases.

 
PROPIEDADES 

Producto: 4D
Tema: Tutorial

 
ARTICLE USAGE

Manual de SQL ( 4D v11 SQL Release 4 )
Manual de SQL ( 4D v14)
Manual de SQL ( 4D v12.1)
Manual de SQL ( 4D v13.4)
Manual de SQL ( 4D v14 R2)
Manual de SQL ( 4D v14 R3)
Manual de SQL ( 4D v14 R4)