Fórum procedure for select duplica valores... #56207
14/06/2006
0
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 ?
Thiagopedro
Curtir tópico
+ 0Posts
14/06/2006
Vinicius2k
Está ´sobrando´ um SUSPEND na sua SP. ;)
Gostei + 0
18/06/2006
Orpolonio
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.
Gostei + 0
19/06/2006
Thiagopedro
Problema resolvido.
Substituido o Suspend pelo Exit, por na mesma stored procedure há outras funções.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)