CPF/CNPJ sem formatação
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
CPF/CNPJ sem formatação
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?
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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
CPF/CNPJ sem formatação
Este seria o ideal, mas só tem no MySQL 8.0
Acaba removendo tudo que não seja número.
Acaba removendo tudo que não seja número.
No MySQL 5.7, resta o REPLACE, que não é tão eficiente, caso tenha algum lixo no campoSELECT REGEXP_REPLACE( CDCNPJ, '[^0-9]', '' ) FROM JPCADASTRO
Pois é... chegando a algumas rotinas com exceção ao que seria normal...SELECT REPLACE( REPLACE( REPLACE( CDCNPJ, '/','' ), '.', '' ), '-', '' ) FROM JPCADASTRO
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
CPF/CNPJ sem formatação
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.
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.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
CPF/CNPJ sem formatação
Estou usando MySQL por ADO, qualquer MySQL funciona bem com Harbour.Mario Mesquita escreveu:Quintas, vc está usando o MySQL 5.7? Ela roda bem com o 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
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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
CPF/CNPJ sem formatação
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
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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
CPF/CNPJ sem formatação
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.
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.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
CPF/CNPJ sem formatação
Talvez pra se acostumar: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.
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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
CPF/CNPJ sem formatação
Boa tarde a todos.
Quintas, obrigado pelas dicas. Muito interessante mesmo.
Abraço e obrigado.
Saudações,
Mario.
Quintas, obrigado pelas dicas. Muito interessante mesmo.
Abraço e obrigado.
Saudações,
Mario.
-
Marcos Kieron
- Usuário Nível 2

- Mensagens: 72
- Registrado em: 14 Jan 2020 10:29
- Localização: São Paulo/SP
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
CPF/CNPJ sem formatação
Seria... se existisse.Marcos Kieron escreveu:Simples:
CNPJ = CHARREM('/.-',CNPJ)
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...
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
Marcos Kieron
- Usuário Nível 2

- Mensagens: 72
- Registrado em: 14 Jan 2020 10:29
- Localização: São Paulo/SP
CPF/CNPJ sem formatação
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?
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?
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
CPF/CNPJ sem formatação
O problema está resolvido.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?
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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
Marcos Kieron
- Usuário Nível 2

- Mensagens: 72
- Registrado em: 14 Jan 2020 10:29
- Localização: São Paulo/SP