Página 1 de 1

xHarbour + Postgre aumentando consumo de memória

Enviado: 03 Mai 2012 12:17
por apss
Olá pessoal, migrei recentemente do Clipper 5.2 para o xHarbour 1.2.1 para poder acessar os bancos MySQL e PostgreSQL.
Estou conseguindo acessar, ler, incluir, alterar e excluir nos 2 bancos através das libs da contrib.
Porém tenho notado que na minha máquina (Windows 7 Ultimate 64 bits) minha rotina de atualização (do DBF para o Postgre) funciona bem, mas no servidor (Windows 2003 32 bits) ela não completa, a execução pára durante um "SELECT" não apresentando erro algum.
Notei também, através do gerenciador de tarefas do Windows, que o tamanho em memória do meu executável vai crescendo a cada insert/update no Postgre (no Windows 2003 quando para está aproximadamente em 12MB, no Windows 7 no final chegou a mais de 500MB).
Abaixo um exemplo do código que estou usando para inserir dados no Postgre (está em um loop passando por todos os itens do meu DBF de produtos).

Código: Selecionar todos

res := PQexec(nConexao, "BEGIN")
PQClear(res)
sqlConsulta := PQexec(nConexao, "SELECT id FROM produto WHERE id="+vProdId)
If (PQnTuples(sqlConsulta)=0)
     sqlInsert := PQExec(nConexao, "INSERT INTO produto (id, descricao) VALUES (vProdId+", '"+vDescricao+"');")
     If (PQresultstatus(sqlInsert)=7)
          Alert(PQresultErrormessage(sqlInsert))
     EndIf
Else
     sqlInsert := PQExec(nConexao, "UPDATE produto set descricao='"+vDescricao+"' WHERE id="+vProdId+";")
     If (PQresultstatus(sqlInsert)=7)
          Alert(PQresultErrormessage(sqlInsert))
     EndIf
EndIf
PQClear(sqlInsert)
PQClear(sqlConsulta)
res := PQExec(nConexao, "COMMIT")
PQClear(res)
Alguém pode me dar alguma dica se está certo e/ou como resolver este problema?
Se alguém tiver alguma documentação sobre também ajuda.

Grato,

Alexandre

xHarbour + Postgre aumentando consumo de memória

Enviado: 03 Mai 2012 21:29
por sygecom
Olá Alexandre,
Não sei como resolver, mas vou apenas da um pitaco, se pretende usar as LIB nativas meu conselho é que migre para Harbour que esse tipo de problema não acontece, além de poder contar com muito mais recurso que hoje não tem no xHarbour, agora para quem está dependente de uma SQLRDD da vida ai o jeito é usar xHarbour mesmo. Boa sorte

xHarbour + Postgre aumentando consumo de memória

Enviado: 06 Mai 2012 22:57
por apss
Olá sygecom fiz como sugeriu e deu certo! Ficou bom, muito obrigado!
Obrigado.