Página 1 de 1

duvida importacao de dbf para postgresql

Enviado: 26 Ago 2020 09:33
por andrelucass
Ola a todos

Estou migrando meu sistema de dbf para postgresql, me deparei com o problema de acentuação, na base dbf existem registros com acento.

Gostaria de saber como configurar o banco de dados para receber essas informações.

Atenciosamente
André Lucas Souza

duvida importacao de dbf para postgresql

Enviado: 26 Ago 2020 10:35
por pauloa1
Quando Criar a base de dados no Post coloca o encoding = WIN1252.

Paulo

duvida importacao de dbf para postgresql

Enviado: 26 Ago 2020 10:42
por andrelucass
Ola Pauloa1

Crie a base de dados com encoding = WIN1252 e está aparecendo essa mensagem, estou usando o postgresql 9.6

ERROR: new encoding (WIN1252) is incompatible with the encoding of the template database (UTF8)
HINT: Use the same encoding as in the template database, or use template0 as template.

duvida importacao de dbf para postgresql

Enviado: 26 Ago 2020 11:49
por andrelucass
Cria o banco de dados da seguinte forma:

Enconding : WIN1252
Template: Template0
Tablespace: pg_default
Collation: Portuguese_Brazil:1252
Character Type: Portuguese_Brazil:1252

o sistema aceitou a acentuação usando o seguinte insert

INSERT INTO administrativo.cidades (nomcid,estcid,kmcid) VALUES ('SãO PAULO ','SP','1')

só que no banco de dados está gravado dessa forma:
SÆO PAULO

duvida importacao de dbf para postgresql

Enviado: 26 Ago 2020 13:58
por andrelucass
Estou precisando muito resolver isso

duvida importacao de dbf para postgresql

Enviado: 26 Ago 2020 15:05
por pauloa1
Você usa Sqlrdd ? Se sim, eu recomendo usar o sql2dbf.exe criado pelo sygecom é uma mão na roda, pra transferir os dados.

Paulo

duvida importacao de dbf para postgresql

Enviado: 26 Ago 2020 15:08
por andrelucass
não eu utilizo a classe do rodrigo moreno

você poderia ajudar ?

meu e-mail: andrelucassouza72@gmail.com

duvida importacao de dbf para postgresql

Enviado: 26 Ago 2020 21:07
por Itamar M. Lins Jr.
Ola!
Neste caso bastava apenas converter para UTF8EX quando fosse jogar para o PG.
Adiciona a pagina de código UTF8EX

Código: Selecionar todos

REQUEST HB_LANG_PT, HB_CODEPAGE_PTISO, HB_CODEPAGE_PT850, HB_CODEPAGE_UTF8EX
Saudações,
Itamar M. Lins Jr.

duvida importacao de dbf para postgresql

Enviado: 26 Ago 2020 21:46
por sygecom
André,

Assim que conectar no banco e antes de qualquer SQL, use:

oServer := TPQServer():New( cHOST, cDATABASE, cUSER, cPASS, nPORTA, NIL ) // CONECTA NO BANCO DE DADOS
EXECUTA_PGSQL(oServer,"set client_encoding TO 'SQL_ASCII';") // <----

duvida importacao de dbf para postgresql

Enviado: 28 Ago 2020 09:29
por andrelucass
Ola a todos

Com a ajuda de Pauloa1, fiz a criação do banco de dados, uso xharbour com gtwvw e descobrir que uso a função wvw_setcodepage(,255) é isso que esta contribuindo para a gravação dos dados com acento incorrretos, uso no inicio do sistema os seguintes comandos:

REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850

HB_LANGSELECT( 'PT' )
HB_SETCODEPAGE( "PT850","PTISO" )

depois
WVW_SetCodePage(,255)

é aqui que esta o problema, alguém sabe qual codepage usar

duvida importacao de dbf para postgresql

Enviado: 28 Ago 2020 11:21
por sygecom
Aqui uso:

REQUEST HB_CODEPAGE_PTISO
REQUEST HB_LANG_PT

HB_SETCODEPAGE( 'PTISO' )
HB_LANGSELECT( 'PT' )

Mas acho que não seja isso.

duvida importacao de dbf para postgresql

Enviado: 28 Ago 2020 15:37
por JoséQuintas
Dá uma pesquisada nos manuais se mostra em algum lugar, senão vai ter que ser nos fontes mesmo.

https://harbour.github.io/doc/pt-br/gtw ... etcodepage

Note que está em português-Brasil, e está no site do Harbour !!!
Pouca gente viu essa opção PTBR na documentação.

duvida importacao de dbf para postgresql

Enviado: 29 Ago 2020 01:47
por Claudio Soto
Proba eliminando el wvw_setcodepage
Y dejando sólo el HB_SETCODEPAGE

De lo contrario si no funciona proba cambiando el numero 255 en el wvw_setcodepage por 850 o 860, ver:

https://docs.microsoft.com/en-us/window ... dentifiers

duvida importacao de dbf para postgresql

Enviado: 03 Jan 2022 20:58
por fjservicosthe
Utilizo essa Função, e dá certo

Código: Selecionar todos

Tiracento(nNome)
*************************
 nNome:=StrTran(nNome," ","a")
 nNome:=StrTran(nNome,"Æ","a")
 nNome:=StrTran(nNome,"…","a")
 nNome:=StrTran(nNome,"ƒ","a")
 nNome:=StrTran(nNome,"µ","A")
 nNome:=StrTran(nNome,"Ç","C")
 nNome:=StrTran(nNome,"·","A")
 nNome:=StrTran(nNome,"¶","A")
 nNome:=StrTran(nNome,"‚","e")
 nNome:=StrTran(nNome,"Š","e")
 nNome:=StrTran(nNome,"ˆ","e")
 nNome:=StrTran(nNome,"","E")
 nNome:=StrTran(nNome,"Ô","E")
 nNome:=StrTran(nNome,"Ò","E")
 nNome:=StrTran(nNome,"Ó","E")
 nNome:=StrTran(nNome,"¡","i")
 nNome:=StrTran(nNome,"Þ","I")
 nNome:=StrTran(nNome,"Ø","I")
 nNome:=StrTran(nNome,"×","I")
 nNome:=StrTran(nNome,"¢","o")
 nNome:=StrTran(nNome,"ä","o")
 nNome:=StrTran(nNome,"•","o")
 nNome:=StrTran(nNome,"“","o")
 nNome:=StrTran(nNome,"à","O")
 nNome:=StrTran(nNome,"å","O")
 nNome:=StrTran(nNome,"ã","O")
 nNome:=StrTran(nNome,"â","O")
 nNome:=StrTran(nNome,"£","u")
 nNome:=StrTran(nNome,"","u")
 nNome:=StrTran(nNome,"é","U")
 nNome:=StrTran(nNome,"š","U")
 nNome:=StrTran(nNome,"‡","c")
 nNome:=StrTran(nNome,"€","C")
 nNome:=StrTran(nNome,"°","")
 nNome:=StrTran(nNome,"±","")
 nNome:=StrTran(nNome,"²","")
 nNome:=StrTran(nNome,"¹","")
 nNome:=StrTran(nNome,"º","")
 nNome:=StrTran(nNome,"»","")
 nNome:=StrTran(nNome,"¼","")
 nNome:=StrTran(nNome,"#","")
 nNome:=StrTran(nNome,"$","")
 nNome:=StrTran(nNome,"%","")
 nNome:=StrTran(nNome,"&","")
 nNome:=StrTran(nNome,"¦","")
 nNome:=StrTran(nNome,"§","")
 nNome:=StrTran(nNome,"¨","")
 nNome:=StrTran(nNome,"©","")
 nNome:=StrTran(nNome,"ª","")
 nNome:=StrTran(nNome,"«","")
 nNome:=StrTran(nNome,"¬","")
 nNome:=StrTran(nNome,"­","")
 nNome:=StrTran(nNome,"®","")
 nNome:=StrTran(nNome,"¯","")
 nNome:=StrTran(nNome,"³","")
 nNome:=StrTran(nNome,"´","")
 nNome:=StrTran(nNome,"¹","")
 nNome:=StrTran(nNome,"½","")
 nNome:=StrTran(nNome,"¾","")
 nNome:=StrTran(nNome,"¿","")
 nNome:=StrTran(nNome,"À","")
 nNome:=StrTran(nNome,"Á","")
 nNome:=StrTran(nNome,"Â","")
 nNome:=StrTran(nNome,"Ã","A")
 nNome:=StrTran(nNome,"Ä","")
 nNome:=StrTran(nNome,"Å","")
 nNome:=StrTran(nNome,"È","")
 nNome:=StrTran(nNome,"É","")
 nNome:=StrTran(nNome,"Ê","")
 nNome:=StrTran(nNome,"Ë","")
 nNome:=StrTran(nNome,"Ì","")
 nNome:=StrTran(nNome,"Í","")
 nNome:=StrTran(nNome,"Î","")
 nNome:=StrTran(nNome,"î","")
 nNome:=StrTran(nNome,"ï","")
 nNome:=StrTran(nNome,"ð","")
 nNome:=StrTran(nNome,"ñ","")
 nNome:=StrTran(nNome,"ò","")
 nNome:=StrTran(nNome,"ó","")
 nNome:=StrTran(nNome,"ô","")
 nNome:=StrTran(nNome,"õ","")
 nNome:=StrTran(nNome,"ö","")
 nNome:=StrTran(nNome,"÷","")
 nNome:=StrTran(nNome,"ø","")
 nNome:=StrTran(nNome,"ù","")
 nNome:=StrTran(nNome,"û","")
 nNome:=StrTran(nNome,"ü","")
 nNome:=StrTran(nNome,"ý","")
 nNome:=StrTran(nNome,"þ","")
 nNome:=StrTran(nNome,"*","")
 nNome:=StrTran(nNome,"'","")
 nNome:=StrTran(nNome,",","")
 
 Return(nNome)