D´Artagnan Dias escreveu: > Dickson, isso até que eu contornei, eu tenho um conjunto de classes > aqui que faz um "Parser" das fórmulas e calcula elas corretamente.Mas > a parte em si de buscar os dados na base até entregar para a fórmula é > que não está nada bom(uma gambiarra dos infernos).Acho que eu acabei > colocando muitos selects aninhados e deu m... aqui.Será que uma > Procedure seria o melhor caso? Ola D'Artagnan (e eu que pensei que meu nome era complicado ":D )
A estrategia que usei não foi a que mais gostei, mas foi a que tive tempo de implementar. Todas as formulas tinham um nome único, essa era a chave natural, porque ao fazer o parsing eu utilizava este nome para expandir a formula. ex: F1 = P1 * (F2 + 3,14)/FQA F2 = (P1 + P2) * (CD*CC) FQA = (CD/2)*1,342 CD = 2,324 CC = 2,716 P1, P2 ... P10 são parametros, F[a-zA-Z0-9]+ são nomes de formulas C[a-zA-Z0-9]+ são constantes que ele precisa buscar na tabela de parsing. Com essa estrategia eu conseguia recursividade facilmente, utilizava os nomes das formulas como chave natural e conseguia pegar os valores, com tudo isso eu tinha uma função que fazia a compilação da formula e convertia os valores para uma notação polonesa. Pode não ser o que voce esta tentando fazer, mas talvez te dê um caminho. -- []s Dickson S. Guedes Administrador de Banco de Dados Projeto Colmeia - Florianópolis, SC (48) 3322-1185, ramal: 26 _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral