Harbour + Minigui + Postgres

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Samuk.exe
Usuário Nível 2
Usuário Nível 2
Mensagens: 65
Registrado em: 25 Mai 2010 15:58
Localização: anapolis

Harbour + Minigui + Postgres

Mensagem por Samuk.exe »

Bom Dia.

Sempre trabalhei com o Dbf.

Mas por questoes de segurança quero migrar para o PostGres, que tbm já tenho experiencia.

Fiz um sistema simples para começar, e aparece o seguinte erro ao Executar - "O aplicativo não pôde ser inicializado corretamente(0xc000007b).Clique em OK para fechar o aplicativo."

PRG:

Código: Selecionar todos

#include <minigui.ch>

*************
function main
*************

DEFINE WINDOW Form_1;
 AT 0,0 ;
 WIDTH 200 HEIGHT 100;
 TITLE 'Exemplo Code 128' ;
 MAIN ;
 FONT 'Arial' SIZE 10

 @ 20,45 BUTTON Button_1 ;
     CAPTION 'Conectar' ;
     ACTION Conecta()

END WINDOW
Form_1.Center()
Form_1.Activate()
Return

*****************
function Conecta
*****************

msginfo("Inicio")

Public oServer	:= Nil

	// Connect

	oServer := TPQServer():New('localhost', 'Email', 'postgres', 'PSsistemas')

	// Check For Error

	If oServer:NetErr()
		msginfo(oServer:Error())
		msginfo("MySql Basic Sample - Not Connected") 
	Else

		msginfo("Connected")
		msginfo("MySql Basic Sample - Connected") 

	EndIf
HBM

Código: Selecionar todos

# --------------------------- 
# Nome do Executável 
# --------------------------- 
-osql
# --------------------------- 
# Bibliotecas 
# ---------------------------
-lminigui 
-lhbpgsql
-llibpq
# --------------------------- 
# Caminhos dos Includes 
# --------------------------- 
-Incpath=c:\minigui\include;c:\minigui\harbour\include; 
# --------------------------- 
# Caminho das Libs da MiniGui 
# --------------------------- 
-Lc:\minigui\lib;c:\minigui\harbour\lib; 
# --------------------------- 
# Outros Parâmetros 
# --------------------------- 
-workdir=.\OBJ\
-head=full 
-gtgui 
-n 
-nowarn 
-inc 
# --------------------------- 
# Prg(s) e Rc(s) 
sql.prg
c:\MInigui\resources\minigui.rc
# ---------------------------
# Fim 
# --------------------------- 
E compiler
@echo off
SET PATH=%PATH%;C:\BCC55\BIN
SET HB_COMPILER=bcc
C:\MINIGUI\HARBOUR\BIN\HBMK2 sql.HBM
Na Pasta peguei a libpq.dll lá no diretorio de instalação do postgres.

Alguém pode me ajudar?! Não tenho aquivos de exemplo... =/
yugi386
Usuário Nível 2
Usuário Nível 2
Mensagens: 82
Registrado em: 24 Jul 2008 10:36
Localização: Minas Gerais

Harbour + Minigui + Postgres

Mensagem por yugi386 »

Saudações,

A conexão com o banco de dados postgres é feita da seguinte forma:

Código: Selecionar todos

#include <hmg.ch>
#include <postgres.ch>

Function Main

        Load Window Main
        Main.Center 
        Main.Activate

Return

FUNCTION iniciar()
	local dbo1 := nil
   
	cHost:=main.host.value 
	cUser:=main.usuario.value
	cPass:=main.senha.value
	cDb:=main.banco.value
	nPort := val(main.porta.value)
	
	dbo1 := PQConnect(cDb, cHost, cUser, cPass, nPort)
   
	IF PQStatus(dbo1) != CONNECTION_OK 
	   msgSTOP("Houve um erro na conecão com o banco Postgres!!!")
	   RETURN nil
	else
		msginfo("Conectado ao banco de dados!")
	ENDIF
   
RETURN dbo1  // retorna o ponteiro de conexão
Observação importante: as DLL´s listadas abaixo tem que estar no mesmo diretório do seu executável: (basta copiar estes arquivos da pasta onde o postgres está instalado.)
  • comerr32.dll
    gssapi32.dll
    k5sprt32.dll
    krb5_32.dll
    libeay32.dll
    libiconv-2.dll
    libintl-8.dll
Outra observação Importante: A HMG foi reestruturada e infelizmente para usar o postgres é necessário utilizar a HMG 3.0.35 (versões posteriores não compilam). Isto se deve a um bug que ainda não foi corrigido.

Código completo de exemplo em anexo (testado com postgres 8.4)
Anexos
postgres.rar
(1.17 MiB) Baixado 555 vezes
Avatar do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

Harbour + Minigui + Postgres

Mensagem por NiltonGM »

Olá,

Na instalação do PostgreSQL v.9.6 não existem todas essas dll mencionadas:
- comerr32.dll !falta
- gssapi32.dll !falta
- k5sprt32.dll !falta
- krb5_32.dll !falta
- libeay32.dll ok achei
- libiconv-2.dll ok achei
- libintl-8.dll ok achei
- libpq.dll ok achei
- ssleay32.dll ok achei

Vou testar para ver se funciona sem essas dll's que estão faltando.
Nilton Medeiros
nilton@sistrom.com.br
Avatar do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

Harbour + Minigui + Postgres

Mensagem por NiltonGM »

Olá yugi386,

Testei seu exemplo, realmente não roda na HMG 3.4.3, dá páu!, No acha as funções que a lib faz referencia como PQConnect, libhbpgsql.a não acha PQfreeCancel e aí vai...
A hora que eu for mesmo usar o Postgres a solução será baixar a versão antiga, será que ela roda sem atrapalhar a versão recente HMG 3.4.3??

Abs!
Nilton Medeiros
nilton@sistrom.com.br
Avatar do usuário
Cavalo Marinho
Usuário Nível 3
Usuário Nível 3
Mensagens: 156
Registrado em: 01 Ago 2009 10:01
Localização: Aracaju/Se

Harbour + Minigui + Postgres

Mensagem por Cavalo Marinho »

Ola amigos, já conseguiram fazer funcionar o postgresql com minigui? estou pensando em migrar meus dbf para post, mas não achei muita coisa pra ele, somente para mysql, outra coisa eu utilizo mingw nao utilizo bcc.
Quem pode me auxiliar nesta jornada.
Obrigado
Avatar do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

Harbour + Minigui + Postgres

Mensagem por NiltonGM »

Ainda não, talvez quando vier um novo release do HMG, talvez... Como ando com muito serviço, estou usando o MySQL e não estou tendo tempo pra mexer com o Postgres, só que mais cedo ou mais tarde vou ter que cair pro Postgres e se não tiverem resolvido isso no Harbour com HMG estou perdido.
Agora uma coisa não entendo, se alguma versão anterior da HMG funcionava com postgres, porque não mantiveram isso? Porque foi descartada a casse para trabalhar com um banco de dados muito mais parrudo e seguro que o MySQL?
Nilton Medeiros
nilton@sistrom.com.br
Avatar do usuário
JAIR RANGEL
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 19 Jul 2005 16:01
Localização: RIO DE JANEIRO
Contato:

Harbour + Minigui + Postgres

Mensagem por JAIR RANGEL »

Boa noite, Amigos!

Alguém poderia dizer como anda a falta de compatibilidade do hmg 3.4.3 com o Postgre?
Será que isso foi resolvido?

Estou iniciando um projeto e gostaria de usar o Post como banco de dados...

A ideia de retroceder na versão do hmg para suportar o post não me agrada.

Forte abraço a todos do grupo!
MINIGUI + HARBOUR + BRMAKE + CDX
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

Harbour + Minigui + Postgres

Mensagem por MSDN »

Jair,

Independente de lib gráfica, o Harbour/xHarbour tem uma classe para acessar e trabalhar com o PostGreSQL, fica na pasta :
C:\Harbour\contrib\hbpgsql

Abraços
Avatar do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

Harbour + Minigui + Postgres

Mensagem por NiltonGM »

Maravilha, achei a pasta em C:\hmg.3.4.4\HARBOUR\contrib\hbpgsql, assim que puder vou re-instalar o PostGreSQL novamente e se eu conseguir fazer o Harbour com HMG acessar esse banco eu posto aqui.
Nilton Medeiros
nilton@sistrom.com.br
Responder