Fórum procedure for select duplica valores... #56207

14/06/2006

0

Olá amigos delphianos!!

estou criando uma procedure para pesquisa em uma tabela chamada ´membros´ pelo campo ´nome´.

  if (:NOME_IN IS NOT NULL)  then
  BEGIN

    FOR SELECT CODIGO,
             NOME,
             DT_INSCRICAO,
             DT_ALTERACAO,
             DATANASCIMENTO,
             RG_ORGAOEMISSOR,
             SEXO,
             ESTADOCIVIL,
             TIPOSANGUINEO,
             DOADOR,
             PROFISSAO,
             EMPREGADO,
             DEFICIENTE,
             TELEFONE1,
             TELEFONE2,
             TELEFONE3,
             TRABALHAESCALA,
             PESOACIMADE80KG,
             ENDERECO,
             BAIRRO,
             CIDADE,
             UF,
             CAIXAPOSTAL,
             NAIGREJADESDE,
             CODIGREJA,
             CODOCUPACOES,
             TELEFONECONTATO,
             CPF,
             RG,
             ENDR_NUMERO,
             CEP,
             NACIONALIDADE,
             MATRICULA,
             CODCLASSES,
             CODGRUPOSASSISTENCIA
        FROM MEMBROS
        WHERE (CODIGREJA = :CODIGREJA_IN)
             AND (NOME like ´¬´ || :NOME_IN || ´¬´)
        ORDER BY NOME
        INTO :CODIGO,
           :NOME,
           :DT_INSCRICAO,
           :DT_ALTERACAO,
           :DATANASCIMENTO,
           :RG_ORGAOEMISSOR,
           :SEXO,
           :ESTADOCIVIL,
           :TIPOSANGUINEO,
           :DOADOR,
           :PROFISSAO,
           :EMPREGADO,
           :DEFICIENTE,
           :TELEFONE1,
           :TELEFONE2,
           :TELEFONE3,
           :TRABALHAESCALA,
           :PESOACIMADE80KG,
           :ENDERECO,
           :BAIRRO,
           :CIDADE,
           :UF,
           :CAIXAPOSTAL,
           :NAIGREJADESDE,
           :CODIGREJA,
           :CODOCUPACOES,
           :TELEFONECONTATO,
           :CPF,
           :RG,
           :ENDR_NUMERO,
           :CEP,
           :NACIONALIDADE,
           :MATRICULA,
           :CODCLASSES,
           :CODGRUPOSASSISTENCIA
    DO
    BEGIN
      SUSPEND;
    END


    SUSPEND;
  END



ela foi compilado sem problemas.

quando eu executo a mesma no ibexpert,
passando o comando do ´nome´ = ´JOS´

era pra ele me retornar 2 registros.
mas ele me retorna 3 registros.
Sendo que o segundo e o terceiro registro são iguais.

O que está ocorrendo ?
Como posso resolver ?

[b:ddcaba891d][color=blue:ddcaba891d]Tópico movido por Vinicius2K:[/color:ddcaba891d][/b:ddcaba891d] [b:ddcaba891d][color=red:ddcaba891d][list:ddcaba891d][*:ddcaba891d]Fórum original: Delphi[/list:u:ddcaba891d][/color:ddcaba891d][/b:ddcaba891d] Por favor, poste as mensagens nos grupos corretos, conforme orienta as [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]Regras de Conduta[/url].



Thiagopedro

Thiagopedro

Responder

Posts

14/06/2006

Vinicius2k

Colega,

Está ´sobrando´ um SUSPEND na sua SP. ;)


Responder

Gostei + 0

18/06/2006

Orpolonio

Somente para constar:
o SUSPEND não suspende/cancela nada, ele apenas retorna uma linha para a query chamadora ok.

A cada suspende sua chamada virtual ganha um novo registro, sei que é bobagem citar isso mas para quem esta iniciando pode confundir.


Responder

Gostei + 0

19/06/2006

Thiagopedro

Ok.

Problema resolvido.

Substituido o Suspend pelo Exit, por na mesma stored procedure há outras funções.


Responder

Gostei + 0

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

Aceitar