[firebase-br] Campo calculado usando outra tabela

CPD (Borborema-Imperial Transportes Ltda) cpd em borborema.com.br
Sex Out 8 18:23:16 -03 2004


Ai vai os Metadados :

CREATE TABLE COMPONENTES (
    COM_TIPO            CHAR2 NOT NULL /* CHAR2 = CHAR(2) */,
    COM_NUMERO          CHAR6 NOT NULL /* CHAR6 = CHAR(6) */,
    COM_KM_ACUMULADA    INTLONGO NOT NULL /* INTLONGO = INTEGER */,
    COM_KM_PERCORRIDA   COMPUTED BY (((select kav_km from
km_acumulada_data_veiculo(componentes.com_placa, current_date)) - (select
kav_km from km_acumulada_data_veiculo(componentes.com_placa,
componentes.com_data)))),
    COM_DT_KM           COMPUTED BY ((select max(ckm_data) from
componentes_km where ckm_tipo = componentes.com_tipo and ckm_numero =
componentes.com_numero)),
    COM_ATIVO           CHAR1 NOT NULL /* CHAR1 = CHAR(1) */,
    COM_PLACA           CHAR7 /* CHAR7 = CHAR(7) */,
    COM_DT_IMPLANTACAO  DATAHORA /* DATAHORA = TIMESTAMP */,
    COM_DATA            DATA /* DATA = DATE */,
    COM_REFERENCIA      VCHAR30 /* VCHAR30 = VARCHAR(30) */,
    COM_POSICAO         VCHAR20 /* VCHAR20 = VARCHAR(20) */,
    COM_USUARIO         VCHAR30 NOT NULL /* VCHAR30 = VARCHAR(30) */,
    COM_MOTIVO          VCHAR256 /* VCHAR256 = VARCHAR(256) */,
    COM_ATUALIZA        CHAR1 /* CHAR1 = CHAR(1) */,
    COM_DESINSTALAR     CHAR1 /* CHAR1 = CHAR(1) */,
    COM_INSTALAR        CHAR1 /* CHAR1 = CHAR(1) */
);

CREATE PROCEDURE KM_ACUMULADA_DATA_VEICULO (
    PLACA CHAR(7),
    DATA DATE)
RETURNS (
    KAV_KM INTEGER)
AS
begin
kav_km = null;
select first 1 kco_km_acumulada from km_consumo
       where kco_placa = :placa and
             kco_data = :data
       order by kco_km_acumulada desc
  into kav_km;
if (kav_km is null) then
    begin
    select first 1 kco_km_acumulada from km_consumo
           where kco_placa = :placa and
                 kco_data < :data
           order by kco_data desc, kco_km_acumulada desc
      into kav_km;
    if (kav_km is null) then
        begin
        select first 1 kco_km_acumulada from km_consumo
               where kco_placa = :placa and
                     kco_data > :data
               order by kco_data, kco_km_acumulada
          into kav_km;
        if (kav_km is null) then
            select vei_km_acumulada from veiculos
                   where vei_placa = :placa
              into kav_km;
        end
    end
suspend;
end

CREATE TABLE COMPONENTES_KM (
    CKM_TIPO          CHAR2 NOT NULL /* CHAR2 = CHAR(2) */,
    CKM_NUMERO        CHAR6 NOT NULL /* CHAR6 = CHAR(6) */,
    CKM_DATA          DATA NOT NULL /* DATA = DATE */,
    CKM_KM            INTLONGO NOT NULL /* INTLONGO = INTEGER */,
    CKM_KM_ACUMULADA  INTLONGO NOT NULL /* INTLONGO = INTEGER */,
    CKM_PLACA         CHAR7 NOT NULL /* CHAR7 = CHAR(7) */
);

Este é um dos exemplos que comentei que uma tabela utiliza campos calculados
chamando select em SP e Tabelas.

Alexandre C Souza

----- Original Message ----- 
From: "Hernando" <mecanvpcusto em mecan.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, October 08, 2004 10:39 AM
Subject: Re: [firebase-br] Campo calculado usando outra tabela


> dá pra enviar um exemplo de campo calculado dos exemplos que vc citou
> abaixo?
>
>
> Hernando.
>
>
> CPD (Borborema-Imperial Transportes Ltda) escreveu:
>
> >Eu utilizo desde da versão 1.0 e nunca tive problemas e olha que meus
campos
> >calculados são da seguinte forma :
> >
> >* Com select em outra tabela
> >* Com select em SP
> >* Com select em Tabela e SP
> >
> >O Detalhe do Restore é que vc não pode informar a opção de Commit a cada
> >Recuperação do Metadados das tabelas e sim no final do Metadados, isot é,
> >simplismente não colocar a opção de Commit no fim das tabelas.
> >
> >O meu Banco já Chegou a Casa dos + de 1GB e tudo OK.
> >
> >Alexandre C Souza
> >
> >----- Original Message ----- 
> >From: "Carlos H. Cantu" <listas em warmboot.com.br>
> >To: "FireBase" <lista em firebase.com.br>
> >Sent: Thursday, October 07, 2004 5:47 PM
> >Subject: Re: [firebase-br] Campo calculado usando outra tabela
> >
> >
> >
> >
> >>Apesar de existir essa possibilidade, até hoje eu nunca vi alguém
> >>dizer que teve esse problema.
> >>
> >>[]s
> >>Cantu
> >>http://www.warmboot.com.br
> >>FireBase - http://www.FireBase.com.br
> >>
> >>HdSS> Amigos,
> >>
> >>HdSS>     Lembro-me de que há algum tempo falou-se na lista
> >>HdSS> sobre campos calculados usando seleção de outras tabelas.
> >>HdSS>     A posíbilidade de haver erro no Restore continua no FB 1.5?
> >>HdSS>     Estou com uma situação de tabela mestre-detalhe que
> >>HdSS> este recurso ajudaria imensamente.
> >>HdSS>     Se alguém puder ou quiser se manifestar, eu agradeço.
> >>
> >>HdSS> Obs.: De qualquer forma estou realizando testes e os
> >>HdSS> reportarei à lista posteriormente.
> >>
> >>HdSS> Obrigado.
> >>
> >>HdSS> Hugo dos Santos Saraiva.
> >>HdSS> ______________________________________________
> >>HdSS> FireBase-BR (www.firebase.com.br)
> >>HdSS> Para editar sua configuração na lista, use o endereço
> >>HdSS> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> >>
> >>
> >>______________________________________________
> >>FireBase-BR (www.firebase.com.br)
> >>Para editar sua configuração na lista, use o endereço
> >>
> >>
> >http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> >
> >
> >
> >
> >______________________________________________
> >FireBase-BR (www.firebase.com.br)
> >Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> >
> >
> >
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br)
> Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>





Mais detalhes sobre a lista de discussão lista