[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