Cidades

Forum sobre SQL.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Cidades

Mensagem por JoséQuintas »

A gente arruma solução conforme a necessidade.... mas....

Problema:
Validar cidade, quando o campo com nome é maior do que do cadastro

Meu cadastro geral de cidades é o maior possível: JABOATAO DOS GUARARAPES
Mas no cadastro do cliente é menor: JABOATAO DOS GUARARAP

Validar com cidade = "JABOATAO DOS GUARARAP" não dá
Validar com cidade LIKE "JABOATAO DOS GARARAP%" dá... mas aí vai trazer problemas, porque vai aceitar "J", "JA", "JABO", etc.

Por enquanto usei uma saída mista:

IF Len( cidade ) < 20
"cidade = " + mcidade
ELSE
"cidade LIKE " + mCidade + "%"
ENDIF

Fico na dúvida sobre reduzir no cadastro geral, ou deixar sem limites em clientes - o que em DBF ainda não é possível.
Por enquanto o quebra-galho pra SQL foi esse acima. (no fonte com aspas, lógico)

Como vocês costumam fazer?

Nota: o problema maior talvez nem seja a validação, mas na hora de trazer o código correto do IBGE, usando o mesmo esquema, caso existam nomes grandes parecidos.
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/
Marcos Kieron
Usuário Nível 2
Usuário Nível 2
Mensagens: 72
Registrado em: 14 Jan 2020 10:29
Localização: São Paulo/SP

Cidades

Mensagem por Marcos Kieron »

Amigo, use o código do IBGE e simplifique essa parte, de qualquer forma vai precisar para questão fiscal então nem perde tempo, fica com a lista oficial do IBGE e mata essa no peito
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Cidades

Mensagem por JoséQuintas »

Código: Selecionar todos

IF Len( cidade ) < 20
   "cidade = " + mcidade
ELSE
   "cidade LIKE " + mCidade + "%"
ENDIF
Hoje pensei num jeito mais simplificado:

Código: Selecionar todos

"WHERE LEFT( CIDADE, 20 ) = '" + Trim( Left( cCidade, 20 ) )
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/
Marcos Kieron
Usuário Nível 2
Usuário Nível 2
Mensagens: 72
Registrado em: 14 Jan 2020 10:29
Localização: São Paulo/SP

Cidades

Mensagem por Marcos Kieron »

Vou te entregar triturado e digerido, basta usar: https://www.ibge.gov.br/explica/codigos ... cipios.php
Tá fácil, fácil...
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Cidades

Mensagem por JoséQuintas »

Marcos Kieron escreveu:Amigo, use o código do IBGE e simplifique essa parte, de qualquer forma vai precisar para questão fiscal então nem perde tempo, fica com a lista oficial do IBGE e mata essa no peito
.

Mantendo ou não a tabela do IBGE como única, o problema continuaria existindo

E NÃO dá pra usar só o código do IBGE como referência, caso não saiba, nem toda cidade tem código de IBGE próprio.
É o caso, por exemplo, das cidades satélites do Distrito Federal, que usam o mesmo código do DF.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Cidades

Mensagem por JoséQuintas »

Marcos Kieron escreveu:Vou te entregar triturado e digerido, basta usar: https://www.ibge.gov.br/explica/codigos ... cipios.php
Tá fácil, fácil...
kkkkk

Se isso é triturado e digerido.... o que dizer disto?

#include "sefaz_cidade.ch"

https://github.com/JoseQuintas/sefazcla ... _cidade.ch
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/
Marcos Kieron
Usuário Nível 2
Usuário Nível 2
Mensagens: 72
Registrado em: 14 Jan 2020 10:29
Localização: São Paulo/SP

Cidades

Mensagem por Marcos Kieron »

Isso vai forçar voce a manter atualizado manualmente
Mesmo que nao mude muito o ideal é usar a fonte oficial e importar automaticamente e atualizar da mesma forma para quando precisar.
Para que ter esse trabalho quando o computador pode fazer isso?
Pense nisso
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Cidades

Mensagem por JoséQuintas »

Marcos Kieron escreveu:Isso vai forçar voce a manter atualizado manualmente
Mesmo que nao mude muito o ideal é usar a fonte oficial e importar automaticamente e atualizar da mesma forma para quando precisar.
Para que ter esse trabalho quando o computador pode fazer isso?
Não fiz isso pra mim, foi pra ajudar outras pessoas.
Já criei o fonte que transforma a tabela ANP em um fonte PRG, não precisa digitação nem pra atualizar o CH.

Mas, como eu já disse em outro tópico, atualizo mensalmente e automaticamente pelos arquivos oficiais da ANP.
É direto do Excel para o MySQL.
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/
Marcos Kieron
Usuário Nível 2
Usuário Nível 2
Mensagens: 72
Registrado em: 14 Jan 2020 10:29
Localização: São Paulo/SP

Cidades

Mensagem por Marcos Kieron »

Isso, justamente o que sugeri.
Compensa preparar para importar diretamente, depois é só executar a cada vez
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Cidades

Mensagem por JoséQuintas »

Marcos Kieron escreveu:Isso, justamente o que sugeri.
Compensa preparar para importar diretamente, depois é só executar a cada vez
Legal, maravilhoso, coisa de gênio...
E no que isso ajuda a resolver o problema postado?
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/
Marcos Kieron
Usuário Nível 2
Usuário Nível 2
Mensagens: 72
Registrado em: 14 Jan 2020 10:29
Localização: São Paulo/SP

Cidades

Mensagem por Marcos Kieron »

No seu caso... creio que nada vai ajudar
Responder