Comecemos por uma pesquisa simples: queremos saber quantas filmes estão em nossa videoteca. Na linguagem 4D, o código seria:
- A primeira forma de interagir de uma forma similar com o motor SQL é localizar o pedido entre as etiquetas Begin SQL e End SQL. Desta forma, a pesquisa anterior se converte em:
C_LONGINT($AllMovies)
$AllMovies:=0
Begin SQL
SELECT COUNT(*)
FROM MOVIES
INTO <<$AllMovies>>
End SQL
ALERT("A videoteca contém "+String($AllMovies)+"filmes")
- Como pode ver, pode recuperar o resultado da pesquisa em uma variável (em nosso caso $AllMovies) que está entre os símbolos "<<" e ">>".
Outra forma de referenciar todo tipo de expressão 4D valida (variável, campo, array, “expressão…”) é colocar dois pontos ":" antes da expressão:
C_LONGINT($AllMovies)
$AllMovies:=0
Begin SQL
SELECT COUNT(*)
FROM MOVIES
INTO :$AllMovies
End SQL
ALERT("A videoteca contém "+String($AllMovies)+"filmes")
Deve ser prestada atenção especial as variáveis interprocesso, onde a notação é um pouco diferente: deve colocar uma variável interprocesso entre colchetes "[" e "]":
C_LONGINT(<>AllMovies)
<>AllMovies:=0
Begin SQL
SELECT COUNT(*)
FROM MOVIES
INTO <<[<>AllMovies]>>
End SQL
ALERT("A videoteca contém "+String(<>AllMovies)+"filmes")
- A segunda forma de interagir com o motor SQL é utilizar os comandos SQL genéricos integrados (compatíveis ODBC). A pesquisa simples se converte em:
Para maior informação sobre os comandos SQL genéricos, consulte o capítulo SQL do manual de Linguagem 4D.
- A quarta forma de interagir com o motor SQL é utilizar o comando SQL dinâmico EXECUTE IMMEDIATE. O código se converte em:
C_LONGINT($AllMovies)
$AllMovies:=0
C_TEXT($tQueryTxt)
$tQueryTxt:="SELECT COUNT(*) FROM MOVIES INTO :$AllMovies"
Begin SQL
EXECUTE IMMEDIATE :$tQueryTxt;
End SQL
ALERT("A videoteca contém "+String($AllMovies)+"filmes")
Atenção: Você pode ver que neste último exemplo, utilizamos variáveis processo. Isto é necessário se quer utilizar a base em modo compilado. Neste contexto, em efeito, não é possível utilizar variáveis locais com o comando EXECUTE IMMEDIATE.
Para provar todos estes exemplos, lance a base "4D SQL Code Samples" e mostre a caixa de diálogo principal. A esquerda da janela, pode escolher o modo de interrogação do motor de 4D:
Depois pressione o botão SQL query results in variables.