Como Alterar campo quot;COMPUTED BY quot; em uma tabela IN

Firebird

24/06/2005

Caros Colegas,
Uso Delphi 7 - Dbexpress - Interbase 6,5

Tenho uma tabela com campos com a Instrução ´COMPUTED BY´´, acontece que verifique recentemente calculos errados , em vista da formatação inicial fui tentar alterar o DOMAIN que o INTERBASE cria e não é acessível. Tem como eu alterar a minha sentença por outros meios?

[color=green:65b3c8a7ee]Movido de Delphi para Interbase/Firebird[/color:65b3c8a7ee]


Helio Nascimento

Helio Nascimento

Curtidas 0

Respostas

Gandalf.nho

Gandalf.nho

24/06/2005

Qual a ferramenta que vc usa para manipular o banco de dados? Talvez o IBExpert consiga fazer isso.


GOSTEI 0
Helio Nascimento

Helio Nascimento

24/06/2005

Uso o IBExpert - Ultima versão. Já tentei por lá .
Gandolf - Acho que tem que alterar via SQL - as tabelas RDB$ , mas nao sei em qual delas é gravado o texto do ´Computed by´ qdo. criamos o campos e colocamos para que faça os cálculos. Olha só agora é que o meu cliente me disse que esta dando errado nos calculos e olhando com atenção ele tem razão. Há um campo que não pode estar na sentença. Qdo. vc pelo IBExpert tenta modificar o Domain do tipo RDB$82 que o interbase cria vc so consegue visualiza-lo para leitura, não ha possibilidade de alterar.
Será que tem alguem que sabe onde fica gravado os comandos do ´Computed by´ ??


GOSTEI 0
Gandalf.nho

Gandalf.nho

24/06/2005

Vc está tentando alterar diretamente o Domain ou está tentando alterar o campo na tabela?


GOSTEI 0
Helio Nascimento

Helio Nascimento

24/06/2005

Veja bem...
Estou tentando modificar o Dominio (RDB$82),deste campo que se chama RECEBER_DO_CLIENTE NUMERIC(9,2)
COMPUTED BY ( QDE_PARES * CAIXAS* PRECO_VDA_EFETUADO)

Este Campo ´RECEBER_DO_CLIENTE´ É um campo Calculado no proprio Banco de Dados como vc já sabe.

Só que a Expressão COMPUTED BY (QDE_PARES * CAIXAS * PRECO_VDA_EFETUADO) está errado. O correto seria assim:
COMPUTED BY (QDE_PARES * PRECO_VDA_EFETUADO).

Porém qdo. vou para modificar esta expressão neste campo. Não se consegue utilizando a ferramenta IBEXPRESS. Desconfio que não é por lá que se corrige este tipo de campo., e sim pelas tabelas que o BD cria.. as tais RDB$...., em algum lugar esta gravado a minha expressao !!

Se fosse uma tabela com pequenos registros ja teria detonado., e efetuado outra mas nao ja existe milhares de registros. Ai o bicho pega...

Não sei se da para vc entender o meu dilema. Em outras palavras....

Crie ai onde vc esta no INTERBASE/FIREBIRD um Tabela qualquer e nela insira um campo calculado. Após criá-la va novamente neste campo e tente modificar a expressão criada... Voce não consegue. Sacou!!. Sei que
em algum lugar o Banco de Dados gravou a expressão e onde eu nao sei... beleza. QQ coisa estou por aqui.

Até breve.... Ah .. obrigado por estar comigo .As vezes a gente posta e via a ver navios. Tenho acompanhado. Gostaria muito de ajudar alguns amigos, mais ainda nao me sinto com conhecimentos plenos como vcs.


GOSTEI 0
Gandalf.nho

Gandalf.nho

24/06/2005

Realmente, não localizei como alterar. Não dá para vc dropar o campo calculado e recriá-lo?

[quote:7eb2f72617=´Helio Nascimento´]Gostaria muito de ajudar alguns amigos, mais ainda nao me sinto com conhecimentos plenos como vcs.[/quote:7eb2f72617]
Não sinta-se impedido por isso, qualquer ajuda é importante, por mais simples que seja ou pareça.


GOSTEI 0
Helio Nascimento

Helio Nascimento

24/06/2005

Acho que irei criar outro campo do tipo RECEBER_DO_CLIENTE2 E colocar a expressão correta e alterar na aplicação por que para DROPAR nao dá esta interligado com outros e ai detona toda a tabela. Bem fica ai registrado se algum dia alguem ler e puder responder eu gostaria de aprender onde o danado do BANCO DE DADOS esconde a expressao do COMPUTED BY ok até breve e... muito obrigado pela companhia.


GOSTEI 0
POSTAR