Fórum Pergunta básica em consulta SQL #467837
24/01/2014
0
Por exemplo, nessa linha abaixo qual a explicação mais lógica de se usar (:)antes das variáveis?
SELECT * FROM PRODUTOS WHERE ID_PRODUTO = :CODIGO and NOME_PRO LIKE :NOME
Ricardo
Curtir tópico
+ 0Posts
24/01/2014
Jaime Santos
Vou dar um exemplo simples para um fácil entendimento.
Supondo que temos uma Query de nome qryClientes em um DATA MODULE de nome DM, onde definimos na Query a seguinte instrução SQL:
select * from tbClientes
where nomecliente =:Pnomecliente
Nessa instrução SQL estamos trazendo todos os registros da tabela CLIENTES, porém estamos parametrizando a consulta para que só retorne os dados em que o nome do Cliente seja igual ao parâmetro Pnomecliente. O Delphi já vai entender que Pnomecliente é parâmetro pois ele está após os dois pontos, ou seja, o que estiver após dois pontos ele entende como parâmetro.
Agora precisamos passar um valor para esse parâmetro:
Também para passar o valor vou dar um exemplo simples, onde teremos um Edit para entrarmos com o nome do cliente a ser pesquisado e um Button para pesquisar esse cliente.
No evento OnClick do botão entramos com o seguinte código:
procedure TPrincipal.Button1Click(Sender: TObject);
begin
DM.qryClientes.Close;
DM.qryClientes.ParamByName('Pnomecliente').Value:=(edit1.Text);
DM.qryClientes.Open;
end;
end.
Nessa codificação começamos fechando a Query que está localizada no DATA MODULE, definimos que o parâmetro Pnomecliente da Query que está no DATA MODULE receberá o valor do EDIT1.TEXT e por fim abrimos essa Query.
Uma observação muito importante: se por acaso tivéssemos definido um parâmetro, por exemplo, de data, teríamos que transformar o valor de String para Data da seguinte forma:
. . .
DM.qryClientes.ParamByName('Pdata').Value := strtodate (edit1.Text);
. . .
Fonte: Passando parâmetros para uma Query https://www.devmedia.com.br/passando-parametros-para-uma-query/4186#ixzz2rJGS6cOZ
Gostei + 0
24/01/2014
Douglas
Gostei + 0
24/01/2014
Ricardo
Vou dar um exemplo simples para um fácil entendimento.
Supondo que temos uma Query de nome qryClientes em um DATA MODULE de nome DM, onde definimos na Query a seguinte instrução SQL:
select * from tbClientes
where nomecliente =:Pnomecliente
Nessa instrução SQL estamos trazendo todos os registros da tabela CLIENTES, porém estamos parametrizando a consulta para que só retorne os dados em que o nome do Cliente seja igual ao parâmetro Pnomecliente. O Delphi já vai entender que Pnomecliente é parâmetro pois ele está após os dois pontos, ou seja, o que estiver após dois pontos ele entende como parâmetro.
Agora precisamos passar um valor para esse parâmetro:
Também para passar o valor vou dar um exemplo simples, onde teremos um Edit para entrarmos com o nome do cliente a ser pesquisado e um Button para pesquisar esse cliente.
No evento OnClick do botão entramos com o seguinte código:
procedure TPrincipal.Button1Click(Sender: TObject);
begin
DM.qryClientes.Close;
DM.qryClientes.ParamByName('Pnomecliente').Value:=(edit1.Text);
DM.qryClientes.Open;
end;
end.
Nessa codificação começamos fechando a Query que está localizada no DATA MODULE, definimos que o parâmetro Pnomecliente da Query que está no DATA MODULE receberá o valor do EDIT1.TEXT e por fim abrimos essa Query.
Uma observação muito importante: se por acaso tivéssemos definido um parâmetro, por exemplo, de data, teríamos que transformar o valor de String para Data da seguinte forma:
. . .
DM.qryClientes.ParamByName('Pdata').Value := strtodate (edit1.Text);
. . .
Fonte: Passando parâmetros para uma Query https://www.devmedia.com.br/passando-parametros-para-uma-query/4186#ixzz2rJGS6cOZ
Bem explicado, mas o que quero dizer é que mesmo que eu não utilize " : " ou " :P " o resultado é o mesmo.
Gostei + 0
24/01/2014
Jaime Santos
Att.
Gostei + 0
24/01/2014
Jaime Santos
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)