duvida importacao de dbf para postgresql

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

andrelucass
Usuário Nível 3
Usuário Nível 3
Mensagens: 145
Registrado em: 25 Fev 2005 10:40

duvida importacao de dbf para postgresql

Mensagem 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
pauloa1
Usuário Nível 3
Usuário Nível 3
Mensagens: 227
Registrado em: 25 Jun 2008 14:57
Localização: Augusto Pestana-RS

duvida importacao de dbf para postgresql

Mensagem por pauloa1 »

Quando Criar a base de dados no Post coloca o encoding = WIN1252.

Paulo
andrelucass
Usuário Nível 3
Usuário Nível 3
Mensagens: 145
Registrado em: 25 Fev 2005 10:40

duvida importacao de dbf para postgresql

Mensagem 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.
andrelucass
Usuário Nível 3
Usuário Nível 3
Mensagens: 145
Registrado em: 25 Fev 2005 10:40

duvida importacao de dbf para postgresql

Mensagem 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
andrelucass
Usuário Nível 3
Usuário Nível 3
Mensagens: 145
Registrado em: 25 Fev 2005 10:40

duvida importacao de dbf para postgresql

Mensagem por andrelucass »

Estou precisando muito resolver isso
pauloa1
Usuário Nível 3
Usuário Nível 3
Mensagens: 227
Registrado em: 25 Jun 2008 14:57
Localização: Augusto Pestana-RS

duvida importacao de dbf para postgresql

Mensagem 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
andrelucass
Usuário Nível 3
Usuário Nível 3
Mensagens: 145
Registrado em: 25 Fev 2005 10:40

duvida importacao de dbf para postgresql

Mensagem por andrelucass »

não eu utilizo a classe do rodrigo moreno

você poderia ajudar ?

meu e-mail: andrelucassouza72@gmail.com
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

duvida importacao de dbf para postgresql

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

duvida importacao de dbf para postgresql

Mensagem 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';") // <----
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
andrelucass
Usuário Nível 3
Usuário Nível 3
Mensagens: 145
Registrado em: 25 Fev 2005 10:40

duvida importacao de dbf para postgresql

Mensagem 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
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

duvida importacao de dbf para postgresql

Mensagem 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.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

duvida importacao de dbf para postgresql

Mensagem 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.
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/
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

duvida importacao de dbf para postgresql

Mensagem 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
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar do usuário
fjservicosthe
Usuário Nível 1
Usuário Nível 1
Mensagens: 8
Registrado em: 15 Dez 2021 14:39
Localização: Teresina/Pi
Contato:

duvida importacao de dbf para postgresql

Mensagem 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)
Editado pela última vez por Jairo Maia em 04 Jan 2022 11:21, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Responder