Clipper On Line • Ver Tópico - CPF/CNPJ sem formatação

CPF/CNPJ sem formatação

Discussão sobre SQL

Moderador: Moderadores

 

CPF/CNPJ sem formatação

Mensagempor JoséQuintas » 28 Dez 2019 22:13

Uma necessidade mais complicada:

Tem lá uma tabela com CPF/CNPJ formatado, e tem em outra somente número.
Como fazer o relacionamento?

Ou melhor... como converter um CPF/CNPJ pra somente números?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18150
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

CPF/CNPJ sem formatação

Mensagempor JoséQuintas » 28 Dez 2019 22:38

Este seria o ideal, mas só tem no MySQL 8.0
Acaba removendo tudo que não seja número.

SELECT REGEXP_REPLACE( CDCNPJ, '[^0-9]', '' ) FROM JPCADASTRO


No MySQL 5.7, resta o REPLACE, que não é tão eficiente, caso tenha algum lixo no campo

SELECT REPLACE( REPLACE( REPLACE( CDCNPJ, '/','' ), '.', '' ), '-', '' ) FROM JPCADASTRO


Pois é... chegando a algumas rotinas com exceção ao que seria normal...
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18150
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

CPF/CNPJ sem formatação

Mensagempor Mario Mesquita » 06 Jan 2020 11:20

Bom dia a todos e feliz ano novo.

Quintas, vc está usando o MySQL 5.7? Ela roda bem com o Harbour?

Esse ano quero retomar meus estudos de MySQL visando uma migração dos DBFs para SQL. Nem por não gostar dos DBFs, me atende muito bem mas te limita ao mundo xBase, para uso em outras ferramentas, é tudo SQL. Então é bom saber o básico e ir migrando com segurança.

Abraço a todos,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

CPF/CNPJ sem formatação

Mensagempor JoséQuintas » 06 Jan 2020 11:39

Mario Mesquita escreveu:Quintas, vc está usando o MySQL 5.7? Ela roda bem com o Harbour?


Estou usando MySQL por ADO, qualquer MySQL funciona bem com Harbour.

Uma coisa importante:

No mundo Harbour, o ODBC/conector mais usado é 3.51, porque os neguinhos acham fácil de instalar - não precisa run-time do Visual C.
ESSE DÁ PROBLEMAS CONFORME O COMANDO.

https://dev.mysql.com/doc/relnotes/connector-odbc/en/news-3-51.html

odbc351.png


odbc53.png


odbc80.png


NÃO confundir versão do conector ODBC com a versão do servidor MySQL.
ODBC é pra conexão, e acho que todos funcionam com qualquer versão do servidor MySQL.
O 3.51, por exemplo, não tem reconexão automática.

E já confirmei na prática: tem comando que funciona normalmente no conector 5.3, mas dá erro no 3.51

Em termos de servidor, fui sempre instalando o mais moderno, mas o último instalado foi o 5.7. Depois dele tem o 8.0
E em termos de conector, parei no 5.3, só pra não ter que atualizar em todos os clientes novamente. Depois dele tem o 8.0
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18150
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

CPF/CNPJ sem formatação

Mensagempor JoséQuintas » 06 Jan 2020 12:12

Faltou completar, pra quem não está acostumado:

Uma coisa é usar o MySQL do Harbour, e outra coisa é o ADO.

No MySQL do Harbour:

O Harbour, por default, não vém com mysql gerado, depende de downloads adicionais.
o Harbour fica preso à DLL, precisa gerar um Harbour com a DLL, compilar o aplicativo com essa DLL, e distribuir com essa DLL.
Tem que ser exatamente a mesma em todas as etapas, desde a geração até a distribuição.

No ADO:

Qualquer Harbour serve.
No aplicativo tem o texto indicando a versão: 5.3 por exemplo.
Vai instalar o ODBC 5.3 nos clientes.

Versão do servidor MySQL para qualquer dos casos:

tanto faz, não importa nem mesmo se o servidor MySQL está no Windows, no Linux, na internet, na própria máquina, etc
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18150
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

CPF/CNPJ sem formatação

Mensagempor Mario Mesquita » 06 Jan 2020 16:36

Olá!

Então, Quintas, eu já li seus tutoriais de ADO e ODBC e vou reler pra pegar o jeito de preparar pra ficar bacana.

Confesso que é meio confuso pra quem só usa DBF, mas como vc diz, é questão de prática.

Primeiro, aprender a fazer aqui, depois instalar pra rodar em cliente. Mas vejo vantagens, se fizer certinho.

Sem SQL não se aprende nada fora de xBase e quero conhecer outras ferramentas, embora me sinta à vontade com o Harbour.

Vou tentar então a 5.7, já que roda normal com a linguagem. Agradecido pela dica.

Abraço,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

CPF/CNPJ sem formatação

Mensagempor JoséQuintas » 06 Jan 2020 18:06

Mario Mesquita escreveu:Então, Quintas, eu já li seus tutoriais de ADO e ODBC e vou reler pra pegar o jeito de preparar pra ficar bacana.
Confesso que é meio confuso pra quem só usa DBF, mas como vc diz, é questão de prática.


Talvez pra se acostumar:

Instale o ODBC de ADS e trabalhe com DBF, pra ir se acostumando.
Já vai sentir muita diferença.

A sintaxe do ADS pra DBF é igual do SQL Server, talvez a principal diferença, pra quem tá começando é sobre selecionar um único registro.
No MySQL: SELECT * FROM tabela LIMIT 1
No ADS/SQL Server: SELECT TOP 1 * FROM jptabela

A vantagem de começar pelo ADS é que não vai precisar instalar servidor nem nada adicional, a não ser o ODBC de ADS.
E.... ADO é igual pra qualquer base de dados, seja MySQL ou o DBF do ADS.
Vai se surpreender com a velocidade.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18150
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

CPF/CNPJ sem formatação

Mensagempor Mario Mesquita » 08 Jan 2020 14:01

Boa tarde a todos.

Quintas, obrigado pelas dicas. Muito interessante mesmo.

Abraço e obrigado.

Saudações,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

CPF/CNPJ sem formatação

Mensagempor Marcos Kieron » 14 Jan 2020 12:01

Simples:

CNPJ = CHARREM('/.-',CNPJ)
Marcos Kieron
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 66
Data de registro: 14 Jan 2020 10:29
Cidade/Estado: São Paulo/SP
Curtiu: 0 vez
Mens.Curtidas: 5 vezes

CPF/CNPJ sem formatação

Mensagempor JoséQuintas » 14 Jan 2020 14:51

Marcos Kieron escreveu:Simples:
CNPJ = CHARREM('/.-',CNPJ)


Seria... se existisse.

Sei que poderia criar a função no MySQL... ou atualizar para o MySQL 8 e ter a REGEX...
Mas por enquanto estou me limitando ao básico, até eliminar DBF de vez.
Por enquanto é na base do.... funcionou... fica assim até a próxima revisão...
Anexos
mysql.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18150
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

CPF/CNPJ sem formatação

Mensagempor Marcos Kieron » 15 Jan 2020 11:36

Simples, use o Harbour.
Varra o BD e faça a remoção em PRG depois grave em outra coluna o campo limpo, depois remova a coluna com problema, e se for o caso mude o nome da coluna nova para o nome antigo, se precisar.
Isso vai levar uns 5 segundos? talvez?
Marcos Kieron
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 66
Data de registro: 14 Jan 2020 10:29
Cidade/Estado: São Paulo/SP
Curtiu: 0 vez
Mens.Curtidas: 5 vezes

CPF/CNPJ sem formatação

Mensagempor JoséQuintas » 15 Jan 2020 15:07

Marcos Kieron escreveu:Simples, use o Harbour.Varra o BD e faça a remoção em PRG depois grave em outra coluna o campo limpo, depois remova a coluna com problema, e se for o caso mude o nome da coluna nova para o nome antigo, se precisar.
Isso vai levar uns 5 segundos? talvez?


O problema está resolvido.
Se eu fosse alterar a tabela, com certeza eu usaria exatamente esse comando pra fazer o UPDATE, instantâneo e sem PRG.
Justamente quero manter o conteúdo oficial original
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18150
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

CPF/CNPJ sem formatação

Mensagempor Marcos Kieron » 17 Jan 2020 12:19

Que bom, qualquer pede ajuda novamente
Marcos Kieron
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 66
Data de registro: 14 Jan 2020 10:29
Cidade/Estado: São Paulo/SP
Curtiu: 0 vez
Mens.Curtidas: 5 vezes




Retornar para SQL

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 4 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro