ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

RESOLVIDO] Pegar variáveis do select

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
adalbertomesquita
Experiente
Experiente


Registrado: Segunda-Feira, 4 de Agosto de 2008
Mensagens: 402
Localização: Brasília

MensagemEnviada: Sex Out 21, 2011 10:53 am    Assunto: RESOLVIDO] Pegar variáveis do select Responder com Citação

Bom dia a todos!
Tenho uma Query com um select que tem uma variáviel que é preenchida por um TEdit.
Eu gostaria de executar essa Query e pegar todo o select e jogar pra uma Memo pra que eu possa ver como essa variável está sendo preenchida após executar a Query.
Eu consigo pegar o select só que a variável não altera com o valor que é preenchido o Edit.
Ex:
O Select é o seguinte:
SELECT CODCLI, CLIENTE
FROM PCCLIENT
WHERE CODCLI IN :CODIGO


No botão tem o seguinte comando:
QRCLIENTE.CLOSE;
QRCLIENTE.Parameters.ParamByName('CODIGO').Value := EDIT1;
QRCLIENTE.OPEN;


Aí eu tenho o comando pra pegar o select:
Memo1.text := QRCLIENTE.SQL.TEXT;

No Memo1 aparece o select só que a variável continua como :CODIGO e eu preciso que apareça o que foi preenchido no EDIT1.
No Memo1 eu preciso que apareça assim:

SELECT CODCLI, CLIENTE
FROM PCCLIENT
WHERE CODCLI IN (100,200,300)

Se o usuário tiver colocado no Edit1 esses valores.

Desde já agradeço a quem puder me ajudar!


Editado pela última vez por adalbertomesquita em Seg Out 24, 2011 6:15 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Out 21, 2011 11:01 am    Assunto: Responder com Citação

Bom dia

Se a query está funcionando desta forma, você pode utilizar a função StringReplace para substituir o parâmetro CODIGO pelo texto do Edit para exibir a instrução no Memo. Ex:

Código:
Memo1.text := StringReplace(QRCLIENTE.SQL.TEXT, ':CODIGO', Edit1.Text, []);


Espero que ajude.

_________________
Assinatura: Imobiliarias em Guarulhos
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adalbertomesquita
Experiente
Experiente


Registrado: Segunda-Feira, 4 de Agosto de 2008
Mensagens: 402
Localização: Brasília

MensagemEnviada: Sex Out 21, 2011 12:42 pm    Assunto: Responder com Citação

imex escreveu:
Bom dia

Se a query está funcionando desta forma, você pode utilizar a função StringReplace para substituir o parâmetro CODIGO pelo texto do Edit para exibir a instrução no Memo. Ex:

Código:
Memo1.text := StringReplace(QRCLIENTE.SQL.TEXT, ':CODIGO', Edit1.Text, []);


Espero que ajude.

_________________
Assinatura: Imobiliarias em Guarulhos


O problema é justamente porque não está funcionando assim. Então eu gostaria de capturar o select após a execução pra ver o que pode estar errado.


Editado pela última vez por adalbertomesquita em Sex Out 21, 2011 1:12 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Anderson_bnu
Novato
Novato


Registrado: Terça-Feira, 16 de Agosto de 2011
Mensagens: 20

MensagemEnviada: Sex Out 21, 2011 12:45 pm    Assunto: Responder com Citação

Outra forma é você tirar fora a linha de parametros e passar o valor direto no select, tipo assim:

Código:
'SELECT CODCLI, CLIENTE
 FROM PCCLIENT
 WHERE CODCLI IN ('+Edit1.Text+')'


Pelo menos nos testes vai funcionar.

Valeu
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Out 21, 2011 2:35 pm    Assunto: Responder com Citação

Sou a favor do uso de parâmetros, mas não conheço uma forma de passar um array de valores que funcione, como seria necessário neste caso.
Acho que o jeito é concatenar como sugeriu o Anderson_bnu.
Com parâmetro, da forma como você tentou, imagino que os valores são tratados como se fossem um só, e que a query fique da seguinte forma:

Código:
WHERE CODCLI IN '(100,200,300)'


Espero que ajude.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adalbertomesquita
Experiente
Experiente


Registrado: Segunda-Feira, 4 de Agosto de 2008
Mensagens: 402
Localização: Brasília

MensagemEnviada: Seg Out 24, 2011 6:02 pm    Assunto: Responder com Citação

Anderson_bnu escreveu:
Outra forma é você tirar fora a linha de parametros e passar o valor direto no select, tipo assim:

Código:
'SELECT CODCLI, CLIENTE
 FROM PCCLIENT
 WHERE CODCLI IN ('+Edit1.Text+')'


Pelo menos nos testes vai funcionar.

Valeu


Obrigado Amigão!
Funcionou.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB