Estou tentando implementar um classe de conexão com um BD.
Código: Selecionar todos
#include "adodb.ch"
#include "hbclass.ch"
CLASS TConexao
DATA dbRs INIT "ADODB.Connection"
DATA dbDriver INIT "{PostgreSQL UNICODE}"
DATA dbDataBase INIT "Plainning"
DATA dbServer INIT "127.0.0.1"
DATA dbPort INIT 5432
DATA dbUser INIT "postgres"
DATA dbPassword INIT "ccccccc"
METHOD conectar() CONSTRUCTOR
METHOD desconectar()
ENDCLASS
/*
METHOD novo() CLASS TConexao
::dbUser := NIL
::dbPassword := NIL
RETURN Self
*/
METHOD conectar( cUser, cPass ) CLASS TConexao
public dbConn
Try
dbConn:= win_oleCreateObject( "ADODB.Connection" )
dbConn:Open("Driver={PostgreSQL UNICODE};Server=127.0.0.1;Port=5432;Database=plainning;Uid=postgres;Pwd=ccccccc;" )
MsgBox ( "CONETADO", "Plainning",,)
Catch err
MsgBox( "Deu Ruim")
dbConn:Close()
end
RETURN Self
METHOD desconectar() CLASS TConexao
dbRecSet:Close()
RETURN dbConn
Estou fazendo a chamada assim:
Código: Selecionar todos
#include <hmg.ch>
declare window Main
Function main_button_teste_action
oConn:= TConexao():conectar("postgres", "mypassword")
dbCommand :="select * FROM tab_ctspagar;"
dbRecSet := oConn:EXECUTE ( dbCommand )
do while .not. dbRecSet:eof()
msgbox( str( dbRecSet:fields["cpo_numero"]:VALUE ) +" "+ sTr( dbRecSet:fields["cpo_data"]:VALUE ) +" "+ str( dbRecSet:fields["cpo_valor"]:VALUE ), "splain" )
dbRecSet:MoveNext()
enddo
Return Nil
O que eu queria é instanciar a classe fazendo com que o oBjeto da conexão ficasse disponivel/visivel a todo o sistema para assim, executar os métodos.
Agradeço a ajuda.
Obrigado



