GARANTIR DESCONTO

Fórum Comando sql errado! #344917

23/08/2007

0

Bom dia pessoal..gostaria de pedir ajuda de vcs para ver aonde estou errando nesse código sql..
obrigado Eric

               If Letra = ´#´ then
                  Begin
                     parametro1 := Trim(Copy(Trim(edpalavra.text),1,Pos(´´,Trim(edpalavra.text))-1));
                     parametro2 := Trim(Copy(Trim(edpalavra.text),Pos(´´,Trim(edpalavra.text))+1,valor));
                     DM.qBuscaAlertas.Close;
                     DM.qBuscaAlertas.SQL.Clear;
                     DM.qBuscaAlertas.SQL.Add(´SELECT A.DESCRICAO,A.DATACADASTRO,A.ATENDENTE,N.DESCRICAO AS DESCRICAOALERTA ´);
                     DM.qBuscaAlertas.SQL.Add(´FROM ALERTA A INNER JOIN ´);
                     DM.qBuscaAlertas.SQL.Add(´NIVELALERTA N ON A.CODNIVELALERTA = N.CODNIVELALERTA ´);
                     DM.qBuscaAlertas.SQL.Add(´WHERE A.DESCRICAO LIKE :PDESCRICAO1 OR LIKE :PDESCRICAO2 ´);
                     DM.qBuscaAlertas.SQL.Add(´UNION ALL ´);
                     DM.qBuscaAlertas.SQL.Add(´SELECT A.DESCRICAO,A.DATACADASTRO,A.ATENDENTE,N.DESCRICAO AS DESCRICAOALERTA ´);
                     DM.qBuscaAlertas.SQL.Add(´FROM HISTORICO_ALERTA A INNER JOIN ´);
                     DM.qBuscaAlertas.SQL.Add(´NIVELALERTA N ON A.CODNIVELALERTA = N.CODNIVELALERTA ´);
                     DM.qBuscaAlertas.SQL.Add(´WHERE A.DESCRICAO LIKE :PDESCRICAO3 OR :PDESCRICAO4 ´);
                     DM.qBuscaAlertas.Parameters.ParamByName(´PDESCRICAO1´).Value := ´¬´+parametro1+´¬´;
                     DM.qBuscaAlertas.Parameters.ParamByName(´PDESCRICAO2´).Value := ´¬´+parametro2+´¬´;
                     DM.qBuscaAlertas.Parameters.ParamByName(´PDESCRICAO3´).Value := ´¬´+parametro1+´¬´;
                     DM.qBuscaAlertas.Parameters.ParamByName(´PDESCRICAO4´).Value := ´¬´+parametro2+´¬´;
                     DM.qBuscaAlertas.Open;
                     If DM.qBuscaAlertas.RecordCount = 0 then
                        Application.MessageBox(´Nenhum registro encontrado com este critério!´,´Informação´,mb_ok);
                     exit;




Eric.miranda

Eric.miranda

Responder

Posts

23/08/2007

Paulo

Aparentemente não há problema, mas falta mais detalhe, tais como: Qual a mensagem de erro que está dndo e etc... Olhando assim de bate-pronto, parece estar ok, mas por exemplo, se as chaves ammarradas no ON são essas mesmo e etc...


Responder

Gostei + 0

23/08/2007

Emerson Nascimento

if Letra = ´#´ then
begin
   parametro1 := Trim(Copy(Trim(edpalavra.text),1,Pos(´´,Trim(edpalavra.text))-1));
   parametro2 := Trim(Copy(Trim(edpalavra.text),Pos(´´,Trim(edpalavra.text))+1,valor));

   with DM.qBuscaAlertas do
   begin
      Close;
      SQL.Clear;
      SQL.Add(´SELECT A.DESCRICAO, A.DATACADASTRO, A.ATENDENTE, N.DESCRICAO AS DESCRICAOALERTA ´);
      SQL.Add(´FROM ALERTA A´);
      SQL.Add(´INNER JOIN NIVELALERTA N ON N.CODNIVELALERTA = A.CODNIVELALERTA ´);
      SQL.Add(´WHERE A.DESCRICAO LIKE :PDESCRICAO1 OR A.DESCRICAO LIKE :PDESCRICAO2 ´);
      SQL.Add(´UNION ALL ´);
      SQL.Add(´SELECT A.DESCRICAO, A.DATACADASTRO, A.ATENDENTE, N.DESCRICAO AS DESCRICAOALERTA ´);
      SQL.Add(´FROM HISTORICO_ALERTA A´);
      SQL.Add(´INNER JOIN NIVELALERTA N ON N.CODNIVELALERTA = A.CODNIVELALERTA ´);
      SQL.Add(´WHERE A.DESCRICAO LIKE :PDESCRICAO1 OR A.DESCRICAO LIKE :PDESCRICAO2 ´);

      with Parameters do
      begin
         ParamByName(´PDESCRICAO1´).Value := ´¬´+parametro1+´¬´;
         ParamByName(´PDESCRICAO2´).Value := ´¬´+parametro2+´¬´;
      end;
   end;

   DM.qBuscaAlertas.Open;

   // não use recordcount para verificar se HÁ registros no dataset.
   // use se você quiser saber QUANTOS há
   If DM.qBuscaAlertas.IsEmpty then
      Application.MessageBox(´Nenhum registro encontrado com este critério!´,´Informação´,mb_ok);

   exit;
end;

note a alteração no where de ambas consultas.
onde estava
[i:47393dd0f3]WHERE A.DESCRICAO LIKE :PDESCRICAO1 OR LIKE :PDESCRICAO2[/i:47393dd0f3]
agora está
[i:47393dd0f3]WHERE A.DESCRICAO LIKE :PDESCRICAO1 OR [b:47393dd0f3]A.DESCRICAO[/b:47393dd0f3] LIKE :PDESCRICAO2[/i:47393dd0f3]

note também que, como você irá comparar os mesmos valores, não é necessário criar quatro parâmetros. apenas 2.

as demais alterações são ´estéticas´ :)

acho que é isso


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar