Agora queremos passar uma variável que contém o ano a pesquisa SQL (e não o ano) e recuperar a lista de todas os filmes lançados em 1960 o mais recentemente. Além disso, para cada filme encontrado, também queremos informação como o ano, título, diretor, meios utilizados e boletos vendidos. A solução consiste em receber esta informação em arrays ou em um list box. 
- Utilizando código SQL:
 
  ARRAY LONGINT(aSoldTickets;0)
 ARRAY INTEGER(aMovieYear;0)
 ARRAY TEXT(aTitles;0)
 ARRAY TEXT(aDirectors;0)
 ARRAY TEXT(aMedias;0)
 C_LONGINT($MovieYear)
 
 $MovieYear:=1960
 Begin SQL
 SELECT Year_of_Movie, Title, Director, Media, Sold_Tickets
 FROM MOVIES
 WHERE Year_of_Movie >= :$MovieYear
 INTO :aMovieYear, :aTitles, :aDirectors, :aMedias, :aSoldTickets;
 End SQL
 
 ARRAY LONGINT(aNrActors;Size of array(aMovieYear))
 
Como você pode ver:
 - Podemos passar uma variável ($MovieYear) a pesquisa SQL usando a mesma notação que para a recepção de parâmetros.
- O resultado da pesquisa SQL é guardada nos arrays aMovieYear, aTitles, aDirectories, aMedias e aSoldTickets. Os resultados são mostrados na janela principal de duas formas:
 - Utilizando arrays agrupados:
 
  
- Utilizando um list box com colunas com os mesmos nomes: 
 
 
- Utilizando comandos SQL genéricos:
 
  ARRAY LONGINT(aSoldTickets;0)
 ARRAY INTEGER(aMovieYear;0)
 ARRAY TEXT(aTitles;0)
 ARRAY TEXT(aDirectors;0)
 ARRAY TEXT(aMedias;0)
 C_LONGINT($MovieYear)
 C_TEXT($tQueryTxt)
 
 REDUCE SELECTION([MOVIES];0)
 $MovieYear:=1960
 SQL LOGIN(SQL_INTERNAL;"";"")
 $tQueryTxt:=""
 $tQueryTxt:=$tQueryTxt+"SELECT Year_of_Movie, Title, Director, Media, Sold_Tickets"
 $tQueryTxt:=$tQueryTxt+" FROM MOVIES"
 $tQueryTxt:=$tQueryTxt+" WHERE Year_of_Movie >= :$MovieYear"
 SQL EXECUTE($tQueryTxt;aMovieYear;aTitles;aDirectors;aMedias;aSoldTickets)
 SQL LOAD RECORD(SQL all records)
 SQL LOGOUT
 
 ARRAY LONGINT(aNrActors;Size of array(aMovieYear))
- Utilizando o comando QUERY BY SQL:
 
  ARRAY LONGINT(aSoldTickets;0)
 ARRAY INTEGER(aMovieYear;0)
 ARRAY TEXT(aTitles;0)
 ARRAY TEXT(aDirectors;0)
 ARRAY TEXT(aMedias;0)
 C_LONGINT($MovieYear)
 
 REDUCE SELECTION([MOVIES];0)
 $MovieYear:=1960
 QUERY BY SQL([MOVIES];"Year_of_Movie >= :$MovieYear")
 SELECTION TO ARRAY([MOVIES]Year_of_Movie;aMovieYear;[MOVIES]Title;aTitles;[MOVIES]Director;aDirectors;
 [MOVIES]Media;aMedias;[MOVIES]Sold_Tickets;aSoldTickets)
 
 ARRAY LONGINT(aNrActors;Size of array(aMovieYear))
- Utilizando o comando SQL EXECUTE IMMEDIATE:
 
  ARRAY LONGINT(aSoldTickets;0)
 ARRAY INTEGER(aMovieYear;0)
 ARRAY TEXT(aTitles;0)
 ARRAY TEXT(aDirectors;0)
 ARRAY TEXT(aMedias;0)
 C_LONGINT($MovieYear)
 C_TEXT($tQueryTxt)
 
 REDUCE SELECTION([MOVIES];0)
 $MovieYear:=1960
 $tQueryTxt:=""
 $tQueryTxt:=$tQueryTxt+"SELECT Year_of_Movie, Title, Director, Media, Sold_Tickets"
 $tQueryTxt:=$tQueryTxt+" FROM MOVIES"
 $tQueryTxt:=$tQueryTxt+" WHERE Year_of_Movie >= :$MovieYear"
 $tQueryTxt:=$tQueryTxt+" INTO :aMovieYear, :aTitles, :aDirectors, :aMedias, :aSoldTickets;"
 Begin SQL
 EXECUTE IMMEDIATE :$tQueryTxt;
 End SQL
 
 ARRAY LONGINT(aNrActors;Size of array(aMovieYear))
 
Para provar todos os exemplos anteriores, lance a base "4D SQL Code Samples" e vá até a janela principal. Escolha o modo de consulta e pressione o botão SQL query results in arrays.