[firebase-br] Índice de expressão e stored procedure
Daniel / Tecnobyte
temp2 em tecnobyte.com.br
Qua Abr 9 10:15:17 -03 2008
Carlos Cantu
Resolvi parcialmente o problema criando uma UDF que retorna apenas letras e
números e em seguida criei o índice baseado no retorno desta função.
O único inconveniente que sobrou agora é que no Firebird 2.1.0.17735 a
mensagem de erro não inclui o nome do índice, o que me gera outro problema
(tradução das mensagens de erro na aplicação).
No Firebird 2.1 a mensagem fica assim:
---
attempt to store duplicate value (visible to active transactions) in unique
index "@1"
---
Testei no Firebird 2.0 e nesta versão a mensagem está correta.
Se alguém puder levar este bug da versão 2.1 ao conhecimento dos
desenvolvedores do Firebird, ficarei grato. Não tenho experiência em
reportar bug do Firebird e conto com a gentileza de quem sabe para quem
informar.
Atenciosamente.
Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br
----- Original Message -----
From: "Carlos H. Cantu (TeamFB)" <listas em warmboot.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, April 09, 2008 7:16 AM
Subject: Re: [firebase-br]Índice de expressão e stored procedure
DT> Alguém tem alguma sugestão melhor para resolver o problema?
Daniel,
Experimente criar o indice usando uma UDF que "limpa" os caracteres
indesejados, e no select de pesquisa, use a mesma UDF, ex:
select * from pessoa where f_limpa(identidade) = '12345678'
DT> NOTA! Ainda não testei índice baseado em expressão com chamada a uma
UDF.
Então teste e nos retorne ;)
De qualquer forma, se vc tem a "opção" de gravar tudo sem formatação,
eu acho que seria o ideal neste caso.
[]s
Cantu (Membro do TeamFB - FireBase)
http://www.warmboot.com.br
FireBase - http://www.FireBase.com.br
Blog - http://blog.firebase.com.br
Mais detalhes sobre a lista de discussão lista