[firebase-br] Retirar pontos de um campo

Vilmar Diogo vilmardiogo em mcisistemas.com.br
Ter Set 3 10:38:41 -03 2013


Pq você não atualiza o FireBird para qualquer versão que suporte a função
REPLACE, vários colegas já lhe passaram este dica.


Em 3 de setembro de 2013 08:12, Henrique Ribeiro
<kikeribeiro em gmail.com>escreveu:

> Bom dia amigo,
>
> Eu resolvi isto via programação no Delphi.
>
> Segue a função:
>
> function SomenteNumero(s: string; nao: Char): string;
> var
>   i: integer;
>   sa: string;
> begin
>   sa := '';
>   for i := 1 to length(s) do
>     begin
>       Application.ProcessMessages;
>       if nao = '' then
>         begin
>           if s[i] in ['0'..'9'] then
>             sa := sa + s[i];
>         end
>       else if s[i] in ['0'..'9', nao] then
>         sa := sa + s[i];
>     end;
>   Result := sa;
> end;
>
>
> E quando eu preciso, uso da seguinte forma:
>
> Edit1.text:= SomenteNumero(Edit1.Text, #255);
>
>
> Abraço,
> lher
>
>
> 2013/8/29 Denis Dias <denisdias em sociativa.com.br>
>
> > Olá Pessoal,
> >
> > Estou utilizando a sentença abaixo para retornar somente os números de um
> > campo (NCM) de uma tabela (Est_adicionais), preciso implementá-la agora
> > para atualizar (Update) o campo com o retorno da consulta, mas estou
> > encontrando dificuldades, alguém pode me ajudar?
> > *Obs: utilizo o Firebird 2.0.3 e o IBmanager para executar a sentença.*
> >
> > SELECT
> >    CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM  1 FOR 1) IN
> > ('0','1','2','3','4','5','6','7','8','9') THEN
> SUBSTRING(EST_ADICIONAIS.ncm
> > FROM  1 FOR 1) ELSE '' END ||
> >    CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM  2 FOR 1) IN
> > ('0','1','2','3','4','5','6','7','8','9') THEN
> SUBSTRING(EST_ADICIONAIS.ncm
> > FROM  2 FOR 1) ELSE '' END ||
> >    CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM  3 FOR 1) IN
> > ('0','1','2','3','4','5','6','7','8','9') THEN
> SUBSTRING(EST_ADICIONAIS.ncm
> > FROM  3 FOR 1) ELSE '' END ||
> >    CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM  4 FOR 1) IN
> > ('0','1','2','3','4','5','6','7','8','9') THEN
> SUBSTRING(EST_ADICIONAIS.ncm
> > FROM  4 FOR 1) ELSE '' END ||
> >    CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM  5 FOR 1) IN
> > ('0','1','2','3','4','5','6','7','8','9') THEN
> SUBSTRING(EST_ADICIONAIS.ncm
> > FROM  5 FOR 1) ELSE '' END ||
> >    CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM  6 FOR 1) IN
> > ('0','1','2','3','4','5','6','7','8','9') THEN
> SUBSTRING(EST_ADICIONAIS.ncm
> > FROM  6 FOR 1) ELSE '' END ||
> >    CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM  7 FOR 1) IN
> > ('0','1','2','3','4','5','6','7','8','9') THEN
> SUBSTRING(EST_ADICIONAIS.ncm
> > FROM  7 FOR 1) ELSE '' END ||
> >    CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM  8 FOR 1) IN
> > ('0','1','2','3','4','5','6','7','8','9') THEN
> SUBSTRING(EST_ADICIONAIS.ncm
> > FROM  8 FOR 1) ELSE '' END ||
> >    CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM  9 FOR 1) IN
> > ('0','1','2','3','4','5','6','7','8','9') THEN
> SUBSTRING(EST_ADICIONAIS.ncm
> > FROM  9 FOR 1) ELSE '' END ||
> >    CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM 10 FOR 1) IN
> > ('0','1','2','3','4','5','6','7','8','9') THEN
> SUBSTRING(EST_ADICIONAIS.ncm
> > FROM 10 FOR 1) ELSE '' END ||
> >    CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM 11 FOR 1) IN
> > ('0','1','2','3','4','5','6','7','8','9') THEN
> SUBSTRING(EST_ADICIONAIS.ncm
> > FROM 11 FOR 1) ELSE '' END ||
> >    CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM 12 FOR 1) IN
> > ('0','1','2','3','4','5','6','7','8','9') THEN
> SUBSTRING(EST_ADICIONAIS.ncm
> > FROM 12 FOR 1) ELSE '' END ||
> >    CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM 13 FOR 1) IN
> > ('0','1','2','3','4','5','6','7','8','9') THEN
> SUBSTRING(EST_ADICIONAIS.ncm
> > FROM 13 FOR 1) ELSE '' END ||
> >    CASE WHEN SUBSTRING(EST_ADICIONAIS.ncm FROM 14 FOR 1) IN
> > ('0','1','2','3','4','5','6','7','8','9') THEN
> SUBSTRING(EST_ADICIONAIS.ncm
> > FROM 14 FOR 1) ELSE '' END
> >
> >    AS SO_NUMERO
> >   FROM EST_ADICIONAIS
> >
> > OBS: Já utilizei no Ibexpert e no IBmanager a senteça
> > *Update Est_Adicionais Set NCM = Replace(NCM,'.','')*
> >
> > *mas me retornou a mensagem: *
> > An error was found in the application program input parameters for the
> SQL
> > statement.
> > Dynamic SQL Error.
> > SQL error code = -804.
> > Function unknown.
> > REPLACE
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
Vilmar Diogo
MCI Sistemas
Analista Programador
69 9960-1483



Mais detalhes sobre a lista de discussão lista