[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