Página 1 de 1

CPF/CNPJ sem formatação

Enviado: 28 Dez 2019 22:13
por JoséQuintas
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?

CPF/CNPJ sem formatação

Enviado: 28 Dez 2019 22:38
por JoséQuintas
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...

CPF/CNPJ sem formatação

Enviado: 06 Jan 2020 11:20
por Mario Mesquita
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.

CPF/CNPJ sem formatação

Enviado: 06 Jan 2020 11:39
por JoséQuintas
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/conn ... -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

CPF/CNPJ sem formatação

Enviado: 06 Jan 2020 12:12
por JoséQuintas
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

CPF/CNPJ sem formatação

Enviado: 06 Jan 2020 16:36
por Mario Mesquita
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.

CPF/CNPJ sem formatação

Enviado: 06 Jan 2020 18:06
por JoséQuintas
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.

CPF/CNPJ sem formatação

Enviado: 08 Jan 2020 14:01
por Mario Mesquita
Boa tarde a todos.

Quintas, obrigado pelas dicas. Muito interessante mesmo.

Abraço e obrigado.

Saudações,
Mario.

CPF/CNPJ sem formatação

Enviado: 14 Jan 2020 12:01
por Marcos Kieron
Simples:

CNPJ = CHARREM('/.-',CNPJ)

CPF/CNPJ sem formatação

Enviado: 14 Jan 2020 14:51
por JoséQuintas
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...

CPF/CNPJ sem formatação

Enviado: 15 Jan 2020 11:36
por Marcos Kieron
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?

CPF/CNPJ sem formatação

Enviado: 15 Jan 2020 15:07
por JoséQuintas
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

CPF/CNPJ sem formatação

Enviado: 17 Jan 2020 12:19
por Marcos Kieron
Que bom, qualquer pede ajuda novamente