dicas show delphi

DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais
sombra
Artigos Show Delphi

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais
sombra
iniciantes show delphi

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais
sombra
downloads show delphi

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
sombra
voltar

PARA QUEM GOSTA DE DELPHI

Store Procedure para aplicar máscara no SQL.

Muitas vezes temos a necessidade de gerar arquivos ou relatórios de
modo simples e rápido.

E normalmente os dados são salvos sem a máscara no banco de dados.

Com esta simples stored procedure, podemos fazer nossas
consultas SQL já retornarem as informações formatadas.

Código da Stored Procedure: Para Firebird

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
SET TERM ^ ;
 
CREATE OR ALTER PROCEDURE UTIL_APLICA_MASCARA (
    IN_MASCARA VARCHAR(20),
    IN_TEXTO VARCHAR(100))
RETURNS (
    OUT_RESULTADO VARCHAR(120))
AS
DECLARE variable VLOOP INTEGER;
DECLARE variable V_POS INTEGER;
BEGIN
  IF (
  (TRIM(:in_mascara) = '') OR
  (:in_mascara IS NULL) OR
  (:in_texto IS NULL)
  ) THEN
  BEGIN
    suspend;
    exit;
  END
 
  vloop = 1;
  v_pos = 1;
 
  out_resultado = '';
 
  while (vloop <= CHAR_LENGTH(:in_mascara)) do
  BEGIN
    IF ((SUBSTRING(:in_mascara FROM :vloop FOR 1) IN
    ('.', '\', '/', '-', '(', ')', ' ', '|') )) then
    begin
      out_resultado = :out_resultado || substring(:in_mascara from :vloop for 1);
    end
    else
    begin
      out_resultado = :out_resultado || substring(:in_texto from :v_pos for 1);
 
      v_pos = v_pos + 1;
    end
 
    vloop = vloop + 1;
  end
 
  suspend;
end^
 
SET TERM ; ^

Exemplos de uso:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-- CPF
SELECT
u.out_resultado
FROM util_aplica_mascara('999.999.999-99', '94461023249') u
 
-- CNPJ
SELECT
u.out_resultado
FROM util_aplica_mascara('99.999.999/9999-99', '92441217000155') u
 
-- CEP
SELECT
u.out_resultado
FROM util_aplica_mascara('99.999-999', '99200000') u
 
-- TELEFONE
SELECT
u.out_resultado
FROM util_aplica_mascara('(99) 9999-9999', '5434439621') u
 
-- uso geral (REFERENCIAS)
SELECT
u.out_resultado
FROM util_aplica_mascara('99.9999.99.9999', '012345678901') u
  • Giovani Da Cruz
  • 0 comentários
  • 4 de outubro de 2016

Deixe um comentário

Ir ao topo

© 2024 Infus Soluções em Tecnologia - Todos os Direitos Reservados