ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Problema com logica sql postgresql?
Ir à página Anterior  1, 2
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Ter Ago 21, 2018 11:29 am    Assunto: Responder com Citação

Por que você adicionou essa condição?
O que estava ocorrendo?
Pelo que entendi aquele trecho do Case é utilizado nos casos em que o campo não está preenchido, e adicionar essa condição vai fazer com que os casos em que o campo está preenchido também entrem naquele trecho.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Ter Ago 21, 2018 1:44 pm    Assunto: Responder com Citação

imex escreveu:
Por que você adicionou essa condição?
O que estava ocorrendo?
Pelo que entendi aquele trecho do Case é utilizado nos casos em que o campo não está preenchido, e adicionar essa condição vai fazer com que os casos em que o campo está preenchido também entrem naquele trecho.


Pois é Imex, eu não sei explicar

Vou mostrar as tabelas deste cliente

TABELA GRADE


TABELA GRADE_ATRIBUTO


TABELA GRADE_ATRIBUTO_VALOR


Na tabela grade tenho o campo id_grade_atributo_valor que é envolvida com a tabela grade_atributo_valor

Neste campo id_grade_atributo_valor da tabela grade posso ser vários id's da id_grade_atributo_valor da tabela grade_atributo_valor
Mais deste cliente ai não da certo se eu não colocar aquela condição.

Colocando mostra assim o select


Se NÃO colocar a condição me traz o erro
Citação:
---------------------------
Debugger Exception Notification
---------------------------
Project Retaguarda.exe raised exception class EArgumentOutOfRangeException with message 'Argument out of range'.
---------------------------
Break Continue Help
---------------------------

_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Ter Ago 21, 2018 8:35 pm    Assunto: Responder com Citação

Você descobriu em qual(is) produto(s) ocorre(m) o erro?
Tem produtos com 2 aspas simples no id_grade_atributo_valor? São esses produtos que estão dando problema? Se for experimente adicionar a condição abaixo:

Código:
OR g.id_grade_atributo_valor = ''''''


obs: pelo que vi é necessário colocar 2 aspas simples seguidas para obter uma aspas simples na string

Espero que ajude
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Ago 22, 2018 1:39 pm    Assunto: Responder com Citação

imex escreveu:
Você descobriu em qual(is) produto(s) ocorre(m) o erro?
Tem produtos com 2 aspas simples no id_grade_atributo_valor? São esses produtos que estão dando problema? Se for experimente adicionar a condição abaixo:

Código:
OR g.id_grade_atributo_valor = ''''''


obs: pelo que vi é necessário colocar 2 aspas simples seguidas para obter uma aspas simples na string

Espero que ajude


Então Imex, não tenho produtos com id_grade_atributo_valor sem ser com aspas simples '' pq eu forço a ser desta forma la, pois achei que com isso iria resolver o problema, mais não deu certo

Sobre a mudança no codigo não deu certo também ficou do mesmo jeito.

Volta assim o select
Código:
NOTICE:  Qtd registros: 4
NOTICE:  1ª v_id_atributo_valor: 3793
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3793
NOTICE:  2ª v_id_atributo_valor: 3793
NOTICE:  1ª v_id_atributo_valor: 3793
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3793
NOTICE:  2ª v_id_atributo_valor: 3793
NOTICE:  1ª v_id_atributo_valor: 3793
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3793
NOTICE:  2ª v_id_atributo_valor: 3793
NOTICE:  1ª v_id_atributo_valor: 3793
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3793
NOTICE:  2ª v_id_atributo_valor: 3793
NOTICE:  sub de retorno: TAMANHO - G,TAMANHO - G,TAMANHO - G,TAMANHO - G
NOTICE:  Qtd registros: 4
NOTICE:  1ª v_id_atributo_valor: 3793
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3793
NOTICE:  2ª v_id_atributo_valor: 3793
NOTICE:  1ª v_id_atributo_valor: 3793
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3793
NOTICE:  2ª v_id_atributo_valor: 3793
NOTICE:  1ª v_id_atributo_valor: 3793
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3793
NOTICE:  2ª v_id_atributo_valor: 3793
NOTICE:  1ª v_id_atributo_valor: 3793
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3793
NOTICE:  2ª v_id_atributo_valor: 3793
NOTICE:  sub de retorno: TAMANHO - G,TAMANHO - G,TAMANHO - G,TAMANHO - G
NOTICE:  Qtd registros: 4
NOTICE:  1ª v_id_atributo_valor: 3792
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3792
NOTICE:  2ª v_id_atributo_valor: 3792
NOTICE:  1ª v_id_atributo_valor: 3792
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3792
NOTICE:  2ª v_id_atributo_valor: 3792
NOTICE:  1ª v_id_atributo_valor: 3792
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3792
NOTICE:  2ª v_id_atributo_valor: 3792
NOTICE:  1ª v_id_atributo_valor: 3792
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3792
NOTICE:  2ª v_id_atributo_valor: 3792
NOTICE:  sub de retorno: TAMANHO - M,TAMANHO - M,TAMANHO - M,TAMANHO - M
NOTICE:  Qtd registros: 4
NOTICE:  1ª v_id_atributo_valor: 3792
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3792
NOTICE:  2ª v_id_atributo_valor: 3792
NOTICE:  1ª v_id_atributo_valor: 3792
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3792
NOTICE:  2ª v_id_atributo_valor: 3792
NOTICE:  1ª v_id_atributo_valor: 3792
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3792
NOTICE:  2ª v_id_atributo_valor: 3792
NOTICE:  1ª v_id_atributo_valor: 3792
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3792
NOTICE:  2ª v_id_atributo_valor: 3792
NOTICE:  sub de retorno: TAMANHO - M,TAMANHO - M,TAMANHO - M,TAMANHO - M
NOTICE:  Qtd registros: 4
NOTICE:  1ª v_id_atributo_valor: 3792
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3792
NOTICE:  2ª v_id_atributo_valor: 3792
NOTICE:  1ª v_id_atributo_valor: 3792
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3792
NOTICE:  2ª v_id_atributo_valor: 3792
NOTICE:  1ª v_id_atributo_valor: 3792
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3792
NOTICE:  2ª v_id_atributo_valor: 3792
NOTICE:  1ª v_id_atributo_valor: 3792
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3792
NOTICE:  2ª v_id_atributo_valor: 3792
NOTICE:  sub de retorno: TAMANHO - M,TAMANHO - M,TAMANHO - M,TAMANHO - M
NOTICE:  Qtd registros: 4
NOTICE:  1ª v_id_atributo_valor: 3792
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3792
NOTICE:  2ª v_id_atributo_valor: 3792
NOTICE:  1ª v_id_atributo_valor: 3792
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3792
NOTICE:  2ª v_id_atributo_valor: 3792
NOTICE:  1ª v_id_atributo_valor: 3792
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3792
NOTICE:  2ª v_id_atributo_valor: 3792
NOTICE:  1ª v_id_atributo_valor: 3792
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3792
NOTICE:  2ª v_id_atributo_valor: 3792
NOTICE:  sub de retorno: TAMANHO - M,TAMANHO - M,TAMANHO - M,TAMANHO - M
NOTICE:  Qtd registros: 4
NOTICE:  1ª v_id_atributo_valor: 3793
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3793
NOTICE:  2ª v_id_atributo_valor: 3793
NOTICE:  1ª v_id_atributo_valor: 3793
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3793
NOTICE:  2ª v_id_atributo_valor: 3793
NOTICE:  1ª v_id_atributo_valor: 3793
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3793
NOTICE:  2ª v_id_atributo_valor: 3793
NOTICE:  1ª v_id_atributo_valor: 3793
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3793
NOTICE:  2ª v_id_atributo_valor: 3793
NOTICE:  sub de retorno: TAMANHO - G,TAMANHO - G,TAMANHO - G,TAMANHO - G
NOTICE:  Qtd registros: 4
NOTICE:  1ª v_id_atributo_valor: 3793
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3793
NOTICE:  2ª v_id_atributo_valor: 3793
NOTICE:  1ª v_id_atributo_valor: 3793
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3793
NOTICE:  2ª v_id_atributo_valor: 3793
NOTICE:  1ª v_id_atributo_valor: 3793
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3793
NOTICE:  2ª v_id_atributo_valor: 3793
NOTICE:  1ª v_id_atributo_valor: 3793
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3793
NOTICE:  2ª v_id_atributo_valor: 3793
NOTICE:  sub de retorno: TAMANHO - G,TAMANHO - G,TAMANHO - G,TAMANHO - G
NOTICE:  Qtd registros: 4
NOTICE:  1ª v_id_atributo_valor: 3781
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3781
NOTICE:  2ª v_id_atributo_valor: 3781
NOTICE:  1ª v_id_atributo_valor: 3781
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3781
NOTICE:  2ª v_id_atributo_valor: 3781
NOTICE:  1ª v_id_atributo_valor: 3781
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3781
NOTICE:  2ª v_id_atributo_valor: 3781
NOTICE:  1ª v_id_atributo_valor: 3781
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3781
NOTICE:  2ª v_id_atributo_valor: 3781
NOTICE:  sub de retorno: TAMANHO - 36,TAMANHO - 36,TAMANHO - 36,TAMANHO - 36
NOTICE:  Qtd registros: 4
NOTICE:  1ª v_id_atributo_valor: 3781
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3781
NOTICE:  2ª v_id_atributo_valor: 3781
NOTICE:  1ª v_id_atributo_valor: 3781
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3781
NOTICE:  2ª v_id_atributo_valor: 3781
NOTICE:  1ª v_id_atributo_valor: 3781
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3781
NOTICE:  2ª v_id_atributo_valor: 3781
NOTICE:  1ª v_id_atributo_valor: 3781
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3781
NOTICE:  2ª v_id_atributo_valor: 3781
NOTICE:  sub de retorno: TAMANHO - 36,TAMANHO - 36,TAMANHO - 36,TAMANHO - 36
NOTICE:  Qtd registros: 4
NOTICE:  1ª v_id_atributo_valor: 3783
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3783
NOTICE:  2ª v_id_atributo_valor: 3783
NOTICE:  1ª v_id_atributo_valor: 3783
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3783
NOTICE:  2ª v_id_atributo_valor: 3783
NOTICE:  1ª v_id_atributo_valor: 3783
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3783
NOTICE:  2ª v_id_atributo_valor: 3783
NOTICE:  1ª v_id_atributo_valor: 3783
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3783
NOTICE:  2ª v_id_atributo_valor: 3783
NOTICE:  sub de retorno: TAMANHO - 38,TAMANHO - 38,TAMANHO - 38,TAMANHO - 38
NOTICE:  Qtd registros: 4
NOTICE:  1ª v_id_atributo_valor: 3783
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3783
NOTICE:  2ª v_id_atributo_valor: 3783
NOTICE:  1ª v_id_atributo_valor: 3783
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3783
NOTICE:  2ª v_id_atributo_valor: 3783
NOTICE:  1ª v_id_atributo_valor: 3783
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3783
NOTICE:  2ª v_id_atributo_valor: 3783
NOTICE:  1ª v_id_atributo_valor: 3783
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3783
NOTICE:  2ª v_id_atributo_valor: 3783
NOTICE:  sub de retorno: TAMANHO - 38,TAMANHO - 38,TAMANHO - 38,TAMANHO - 38
NOTICE:  Qtd registros: 4
NOTICE:  1ª v_id_atributo_valor: 3786
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3786
NOTICE:  2ª v_id_atributo_valor: 3786
NOTICE:  1ª v_id_atributo_valor: 3786
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3786
NOTICE:  2ª v_id_atributo_valor: 3786
NOTICE:  1ª v_id_atributo_valor: 3786
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3786
NOTICE:  2ª v_id_atributo_valor: 3786
NOTICE:  1ª v_id_atributo_valor: 3786
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3786
NOTICE:  2ª v_id_atributo_valor: 3786
NOTICE:  sub de retorno: TAMANHO - 40,TAMANHO - 40,TAMANHO - 40,TAMANHO - 40
NOTICE:  Qtd registros: 4
NOTICE:  1ª v_id_atributo_valor: 3786
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3786
NOTICE:  2ª v_id_atributo_valor: 3786
NOTICE:  1ª v_id_atributo_valor: 3786
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3786
NOTICE:  2ª v_id_atributo_valor: 3786
NOTICE:  1ª v_id_atributo_valor: 3786
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3786
NOTICE:  2ª v_id_atributo_valor: 3786
NOTICE:  1ª v_id_atributo_valor: 3786
NOTICE:  1ª Pos: 0
NOTICE:  StrId: 3786
NOTICE:  2ª v_id_atributo_valor: 3786
NOTICE:  sub de retorno: TAMANHO - 40,TAMANHO - 40,TAMANHO - 40,TAMANHO - 40


Este retorno se deve a função original que postei na primeira pagina.

Obrigado.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Ago 22, 2018 2:43 pm    Assunto: Responder com Citação

Então aqueles produtos que estão com 2 aspas simples no id_grade_atributo_valor estão com esse campo em branco? Se for isso experimente acrescentar a condição abaixo:

Código:
OR trim(both ' ' from g.id_grade_atributo_valor) = ''


Se não funcionar, acho que vai ser necessário descobrir em qual produto está ocorrendo o erro, nem que tenha que ir delimitando manualmente o retorno da query com filtros na clausula Where. Descobrindo o produto, seria necessário verificar o conteúdo do campo id_grade_atributo_valor para ver o que pode estar acontecendo.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qui Ago 23, 2018 8:54 am    Assunto: Responder com Citação

imex escreveu:
Então aqueles produtos que estão com 2 aspas simples no id_grade_atributo_valor estão com esse campo em branco? Se for isso experimente acrescentar a condição abaixo:

Código:
OR trim(both ' ' from g.id_grade_atributo_valor) = ''


Se não funcionar, acho que vai ser necessário descobrir em qual produto está ocorrendo o erro, nem que tenha que ir delimitando manualmente o retorno da query com filtros na clausula Where. Descobrindo o produto, seria necessário verificar o conteúdo do campo id_grade_atributo_valor para ver o que pode estar acontecendo.
É Imex realmente não funcionou. Continua igual.

Qual seria a ideia segunda pra ver se descubro onde esta o problema?
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qui Ago 23, 2018 10:01 am    Assunto: Responder com Citação

Acho que você tem que descobrir em quais produtos está ocorrendo o erro.
Uma sugestão seria utilizar o Where para ir limitando os produtos:

Código:
   WHERE p.prod_serv = 'P'
     AND (g.ativo = 1)
     AND p.ativo <> 'E'
     AND ((UPPER(UNACCENT(p.descricao)) LIKE UNACCENT('A%'))
          OR (g.codigo_barra LIKE '%'))


No exemplo acima seriam verificados os produtos que começam com a letra 'A', e conforme o resultado você continuaria refinando até descobrir algum produto.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Sex Ago 24, 2018 10:22 am    Assunto: Responder com Citação

imex escreveu:
Acho que você tem que descobrir em quais produtos está ocorrendo o erro.
Uma sugestão seria utilizar o Where para ir limitando os produtos:

Código:
   WHERE p.prod_serv = 'P'
     AND (g.ativo = 1)
     AND p.ativo <> 'E'
     AND ((UPPER(UNACCENT(p.descricao)) LIKE UNACCENT('A%'))
          OR (g.codigo_barra LIKE '%'))


No exemplo acima seriam verificados os produtos que começam com a letra 'A', e conforme o resultado você continuaria refinando até descobrir algum produto.
Olá Imex, eu achei onde esta dando o erro mais não entendi o porque esta causando o erro, então resolvi deixar quieto isso e fazer uma condição para este cliente usar o sistema sem problemas.

Obrigado.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Ir à página Anterior  1, 2
Página 2 de 2

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB