Consulta SQL - Query

Delphi

28/05/2003

Amigos,

Tenho um form que ao abrir ele faz uma consulta de acordo com o código do usuário que fez o login. Coloquei uma Query no datamodule, e ativei esse form na query. O problema é o seguinte: Se eu deixar a propriedade SQL da Query vazia (para incluir a consulta via programação), a aplicação retorna um erro (dizendo que a SQL é necessária). E eu não sei colocar dentro dessa query uma consulta utilizando variáveis, tipo:

SELECT * FROM CADASTROS WHERE COD_USUARIO = ´Codigo´

Se fosse:
SELECT * FROM CADASTROS WHERE COD_USUARIO = 1

Ai não tinha o que fazer, mas no caso dessa variavel ´codigo´...[color=darkblue:f0ce289bc2][/color:f0ce289bc2]


Rafaelunp

Rafaelunp

Curtidas 0

Respostas

Edineidaniel

Edineidaniel

28/05/2003

vc pode programar no Evento OnShow do Form o Seguinte:

DataModule.Query1.active := false;
DataModule.Query1.sql.clear;
DataModule.Query1.sql.add(´SELECT * FROM CADASTROS WHERE COD_USUARIO = ´Codigo´´)
DataModule.Query1.active:= true;


espero ter ajudado..

t+
Edinei

qualquer dúvida me mande um e-mail.....


GOSTEI 0
Rodrigo Costa

Rodrigo Costa

28/05/2003

Use parâmetros:

na propriedade SQL da query coloque assim:

ex: select * from cadastros where cod_usuario= :pcodigo


obs: substitua pcodigo pelo o que você quiser!

e para atribuir um valor a um parâmetro faça:

ex: query1.Params.ParamByName(´pcodigo´).Value:=edit1.text;



GOSTEI 0
Rafaelunp

Rafaelunp

28/05/2003

Vou testar as duas formas propostas, obrigado!
Antes gostaria de saber qual a mais utilizada?

1º) A passagem por parametros;
2º) O SQL dentro das Propriedades da Query;
3º) O SQL dentro do código fonte no OnShow, antes de abrir a Query.

Não é para esse caso especifíco! Já vinha com essa duvida antes!

Grato,


GOSTEI 0
Rodrigo Costa

Rodrigo Costa

28/05/2003

Pessoalmente acredito que não existe ´mais usada´. Ocorre que devemos escolher a melhor forma de acordo com as necessidades.


GOSTEI 0
Rafaelunp

Rafaelunp

28/05/2003

[quote:5eb5f8ad78=´Rodrigo Costa´]Pessoalmente acredito que não existe ´mais usada´. Ocorre que devemos escolher a melhor forma de acordo com as necessidades.[/quote:5eb5f8ad78]

Desculpe, acho que me expressei mau! Gostaria de saber quais as diferencas básicas para enfim decidir qual é a mais indicada para minha aplicação... Desculpe é que estou começando a programar em Delphi agora...


GOSTEI 0
Rodrigo Costa

Rodrigo Costa

28/05/2003

A diferença é algo do tipo:

Somar 1+1+1+1+1=5 ou 2+3=5

ou seja, uma é mais ou menos trabalhosa que a outra, depende de como se está programando pois existe milhões de maneiras de fazer a mesma coisa.

Eu faço assim:

- passagem por parametros quando tenho uma restricao simples e específica. Em caso de pesquisa por um campo..., é mais automático e mais rápido de fazer, pouca flexbilidade

- SQL dentro da propriedade quando tenho uma coisa fixa, ou seja que nunca vai mudar (ou pelo menos eu acho que não vai), sem flexibilidade

- SQL em tempo de execução quando a consulta será gerada através de uma interação, seja com usuário ou através de condições (if, case...), ou seja, quando não existe algo pré-definido, é mais trabalhoso, porém vc tem total controle da situação, total flexibilidade.

Rodrigo


GOSTEI 0
POSTAR