select
alguem pode me ajudar?
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 é?
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
Curtidas 0
Respostas
Quintelaj
23/01/2004
poderia postar o erro
GOSTEI 0
Rômulo Barros
23/01/2004
query3.Close;
query3.SQL.Clear;
query3.SQL.Add(´select usu.COD_USUARIO, log.cod_usuario, usu.nm_usuario,mov.[color=red:b523d397ad]cod_usuario´[/color:b523d397ad]);
query3.SQL.Add([color=red:b523d397ad]´from[/color:b523d397ad] 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;
// 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
Vanius
23/01/2004
Ola pessoal.
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
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