[firebase-br] Como Capturar SQL de um Campo ??

Gladiston Santana gladiston em vidy.com.br
Qui Out 27 09:20:08 -03 2016


dois dias e não achou o comando ALTER TABLE ?
estranho, heim.

Se o que precisa é um campo calculado na tabela, é simples, veja esses
exemplos:

ALTER TABLE PRODUTOS ALTER POSSUI_VINCULARES COMPUTED BY ((
    CASE
      WHEN EXISTS(SELECT 1 FROM PRODUTOS_VINCULARES WHERE
PRODUTOS_VINCULARES.CODITEM=PRODUTOS.CODITEM)
      THEN 'Sim'
      ELSE 'Não'
    END));

ALTER TABLE PRODUTOS ALTER DIM_TEXTO COMPUTED BY ((
  CAST((
      LEFT(CAST(DIM_LARGURA as varchar(30)),10)||' X '||
      LEFT(CAST(DIM_COMPRIMENTO as varchar(30)),10)||' X '||
      LEFT(CAST(DIM_ALTURA as varchar(30)),10)||' '||
      LEFT(DIM_UNIDADE,10)) as varchar(40))
      ));

ALTER TABLE CV_PENDENCIAS ALTER DESBLOQUEIO_COM COMPUTED BY (
      CASE
        WHEN (DESBLOQUEIO_DATA>'01.01.1970')
        THEN CAST((LEFT(CAST(DESBLOQUEIO_DATA as varchar(30)),10)||' por
'||DESBLOQUEIO_USUARIO) as varchar(40))
        ELSE 'Não desbloqueado'
      END
      );

Se não for isso, explica melhor.

Em 26 de outubro de 2016 20:54, Luciano franca <luapfirebird em yahoo.com.br>
escreveu:

>  Pessoal sei que talvez esse não seja o local certo mais já faz dois dias
> que procuro e não acho o que procuro no Google.
>  eu precisa detectar o comando SQL necessario para gerar um Campo exemplo :
> Coalesce(Case When (Trim(NF.N_CF) <> '') Then  NF.N_CF || ' ' End,
> '')  || Coalesce(Case When (Trim(NF.N_NFM) <> '') Then  NF.N_NFM || ' '
> End, '') As N_CUPOM,
> Eu precisa fazer isso no Delphi não sei se existe algum comando que faça o
> firebird voltar que o campo ''N_CUPOM"  é formado pelo comando ::
> Coalesce(Case When (Trim(NF.N_CF) <> '') Then  NF.N_CF || ' ' End,
> '')  || Coalesce(Case When (Trim(NF.N_NFM) <> '') Then  NF.N_NFM || ' '
> End, '')
> Já procurei como SQL Parse porém não consigo encontrar nada que consiga
> fazer isso
> Seria como dar um Split  porém se colocar a virgula ","   dá problema com
> o Coalesce  então não sei como fazer isso.
> Alguém já passou por isso teria algum código milagroso para isso.   o
> Firebird faz isso internamente assim preciso fazer isso via código pelo
> Delphi.
>



Mais detalhes sobre a lista de discussão lista