Fórum select #208846
23/01/2004
0
tenho 3 tabelas uma de movimento, uma de usuarios e uma de login. quando excluir um usuario precisa saber se ele fez algum movimento ou se tem algun login com ele. se tiver nao pode excluir. meu codigo é:
query3.Close;
query3.SQL.Clear;
query3.SQL.Add(´select usu.COD_USUARIO, log.cod_usuario, usu.nm_usuario,mov.cod_usuario´);
query3.SQL.Add(´from movimento mov,usuarios usu,login log where usu.cod_usuario=mov.cod_usuario and log.cod_usuario=usu.cod_usuario and (log.cod_usuario = :codigo_usuario or mov.cod_usuario=:codigo_usuario)´);
query3.ParamByName(´codigo_usuario´).AsString := txtcodigo.Text;
query3.Open;
ta dando problema alguem sabe o que é?
Speedrob
Curtir tópico
+ 0Posts
23/01/2004
Quintelaj
Gostei + 0
23/01/2004
Rômulo Barros
// O erro é q vc naum deu um espaço entre o select e o from, veja:
query3.Close; query3.SQL.Clear; query3.SQL.Add(´select usu.COD_USUARIO, log.cod_usuario, usu.nm_usuario,mov.cod_usuario´); query3.SQL.Add(´ from movimento mov,usuarios usu,login log where usu.cod_usuario=mov.cod_usuario and log.cod_usuario=usu.cod_usuario and (log.cod_usuario = :codigo_usuario or mov.cod_usuario=:codigo_usuario)´); query3.ParamByName(´codigo_usuario´).AsString := txtcodigo.Text; query3.Open;
Gostei + 0
23/01/2004
Vanius
Gostaria de resaltar MAIS uma vez q quando vc utiliza query.add
vc nao precisa ficar colocando ESPAÇOS no inicio e no final, diferente do metodo:
query.add(´bla_bla_bla´+
´ bla_bla_bla ´);// neste caso, precisamos de dar espaços.
agora, em:
query.add(´bla_bla_bla´);
query.add(´bla_bla_bla´); //nao necessita de espaço. veja pelo Evaluete/Modify (Ctrl+F7).
Fera, para resolver seu problema, corrija a sintaxe onde vc esta utilizando OR.
esta mais ou menos assim (x = y OR a = b). Nesta hora, o delphi confunde as coisas. Ele tenta ver se x=y, a=b, y or a e outras coisas...
Corrija isto colocando mais uns parenteses ficando assim:
( (x = y) OR (a=b) );
beleza.
Agora, se nao for isto, avisa novamente.
ah, LOG é uma palavra reservada do SQL. Altere ele para qualquer outra coisa.
Mais um último conselho, de uma lida em querys com INNER JOIN, LEFT OUTER JOIN e RIGTH OUTER JOIN. Com isto sua query tem uma resposta um pouco mais rápida, alem de ficar mais clara.
Abraços,
Vanius Girodo
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)