Hoje uso o LETODBF mas já iniciei as conversões de dados para o MARIADB e agora chegou a parte complicada, estou querendo fazer um BROWSE pegando os dados do MARIADB mas to mais perdido que tudo , alguém que já tenha uma experiência no assunto pode me dar uma mão
Segue abaixo o código para entendimento
Não sei como pegar os dados do retorno do MARIADB , já tentei como DATABASE e ARRAY mas não deu certo
preciso adicionar alguma .DLL
/*
TITULO : SISTEMA DE GEST¦O DE COMERCIO
DATA : 14/03/2020
PROGRAMA : CONSULTALOGGERAL.PRG
COMENTARIO : CONSULTA LOG GERAL COM MARIADB
*/
#pragma -w0
#pragma -es0
#include "hwgui.ch"
******************************************
FUNCTION LOGGERALMARIADB( )
******************************************
LOCAL oDlg;
, oLabel1, oLabel2, oLabel3;
, obusca, oBrowse1 ;
, oToolbar1;
, oToolbutton1, oToolbutton2, oToolbutton3, oToolbutton4;
, oDatepicker1 , oDatepicker2 ;
, oColuna, bColorBlock ;
, vBusca := "";
, cQuery
PRIVATE cProgressKey:="" ,dDatepicker1:=(m->dat_hoje - 30), dDatepicker2:=m->dat_hoje, lFiltro:=.T., nCODPRO:=0;
, oLabel5 :="", oLabel7 :="", oLabel10 :="", oLabel11 :="", oLabel6 :="", oLabel9 :="", oLabel12 :="", oLabel18 :=""
BEGIN SEQUENCE
oCn := MySqlConnection( "192.168.15.200", "", "sgcroot", "20r13uqse" )
oCn:Open()
cQuery:="USE AMADEU"
oCn:EXECUTE(cQuery)
RECOVER
hwg_MsgInfo('Erro na Conecção do Banco de Dados')
Return nil
End
BEGIN SEQUENCE
cQuery:= "SELECT LOGGERAL_NUMNOT, LOGGERAL_CODPRO, LOGGERAL_DATMOV, LOGGERAL_TIPMOV, LOGGERAL_CODVEN, LOGGERAL_CLIFOR, LOGGERAL_QUANT, LOGGERAL_VALUNI, LOGGERAL_OPERADOR from loggeral"
Retorno := oCn:EXECUTE(cQuery)
RECOVER
hwg_MsgInfo('Erro no SELECT do Banco de Dados')
oCn:Close()
Return nil
End
INIT DIALOG oDlg TITLE "Log Geral - Consulta" ;
ICON MEMVAR->SGC_ICON ;
AT 0, 0 SIZE 1167,600 CLIPPER NOEXIT
ThisBRW := oDlg
// hwg_CREATEARLIST( oBrowse1, Retorno )
@ 4,70 BROWSE oBrowse1 ARRAY OF oDlg SIZE 1160,460 STYLE WS_BORDER + WS_VSCROLL +WS_HSCROLL ;
ON SIZE ANCHOR_TOPABS + ANCHOR_LEFTABS + ANCHOR_RIGHTABS + ANCHOR_BOTTOMABS
oBrowse1:oStyleHead := HStyle():New( { 0xffffff, 0xbbbbbb }, 1,, 0.4, 16759929 )
oBrowse1:oFont := HFont():Add( '',0,-15,700,,,)
oBrowse1:AddColumn( HColumn():New( "Nr.Nota",Retorno:fields["LOGGERAL_NUMNOT"]:VALUE,"C",10,00) )
oBrowse1:AddColumn( HColumn():New( "Codigo",Retorno:fields["LOGGERAL_CODPRO"]:VALUE,"C",10,00,) )
// oBrowse1:AddColumn( HColumn():New( "Movimento",{|v,o|o:aArray[o:nCurrent,3]},"D",12,0,.F., ) )
// oBrowse1:AddColumn( HColumn():New( "Tipo",{|v,o|o:aArray[o:nCurrent,4]},"N",1,0,.F., ) )
// oBrowse1:AddColumn( HColumn():New( "Vendedor",{|v,o|o:aArray[o:nCurrent,5]},"N",4,0,.F., ) )
// oBrowse1:AddColumn( HColumn():New( "Cli/For",{|v,o|o:aArray[o:nCurrent,6]},"C",10,0,.F., ) )
// oBrowse1:AddColumn( HColumn():New( "Quantidade",{|v,o|o:aArray[o:nCurrent,7]},"N",14,2,.F., ) )
// oBrowse1:AddColumn( HColumn():New( "Valor Unit.",{|v,o|o:aArray[o:nCurrent,8]},"N",14,2,.F., ) )
// oBrowse1:AddColumn( HColumn():New( "Operador",{|v,o|o:aArray[o:nCurrent,9]},"C",20,0,.F., ) )
@ 8,-1 TOOLBAR oToolbar1 SIZE 1160,40 ;
// oToolbar1:AddButton("BRW_FIL", , 4, 16, "Aplica" ,{||FILTROLOGGERAL( ),obrowse1:REFRESH()},'Aplica Filtro no Arquivo de Log Geral','', "oToolbutton1")
// oToolbar1:AddButton("BRW_DFIL", , 4, 16, "Remove" ,{||REMOVEFILTROLOGGERAL( ),obrowse1:REFRESH()},'Remover Filtro do Arquivo de Log Geral','', "oToolbutton2")
oToolbar1:AddButton("EXIT16BMP", , 4, 16, "Sair" ,{|| DBCLOSEALL(), oDlg:Close() },'Sair da rotina','', "oToolbutton14")
oToolbar1:CreateTool()
ADD STATUS PANEL TO oDlg HEIGHT 30 PARTS 200,120,300
// @ 4,43 SAY oLabel1 CAPTION "Codigo" SIZE 138,25 ;
// STYLE SS_CENTER +WS_DLGFRAME
//
// @ 150,43 GET oEdit1 VAR nCODPRO SIZE 90,25 STYLE ES_RIGHT PICTURE '@R 999999-9' MAXLENGTH 9
//
// @ 245,43 OWNERBUTTON oOwnerbutton1 SIZE 24,24 ;
// TEXT '' ;
// COORDINATES 0, 0, 0, 0 ;
// BITMAP 'FINDBMP' FROM RESOURCE ;
// COORDINATES 2, 0, 0, 0 ;
// ON CLICK {|| ThisBRW:oEdit1:SETFOCUS(), CONSULTA_PRODUTOS( ), nCODPRO := VAL(PRODUTOS->CODPRO), ThisBRW:oEdit1:REFRESH() }
//
// @ 283,47 SAY oLabel2 CAPTION "Periodo:" SIZE 56,18
// @ 349,43 GET DATEPICKER oDatepicker1 VAR dDatepicker1 SIZE 125,24 VALID {|| (dDatepicker1 < dDatepicker2) }
// @ 482,47 SAY oLabel3 CAPTION "A" SIZE 10,18
// @ 499,43 GET DATEPICKER oDatepicker2 VAR dDatepicker2 SIZE 125,24
ACTIVATE DIALOG oDlg CENTER
oCn:Close()
RETURN NIL
STATIC FUNCTION MySqlConnection( cServer, cDatabase, cUser, cPassword, nPort )
LOCAL cnConnection
hb_Default( @nPort, 3306 )
cnConnection:= win_OleCreateObject( "ADODB.Connection" )
cnConnection:ConnectionString := iif( win_OsIs10(), "Provider=MSDASQL;", "" )
cnConnection:ConnectionString += "Driver={MariaDB ODBC 3.1 Driver};"
cnConnection:ConnectionString += ;
"Server=" + cServer + ";" + ;
"Port=" + Ltrim( Str( nPort ) ) + ";" + ;
"Stmt=;" + ;
"Database=" + cDatabase + ";" + ;
"User=" + cUser + ";" + ;
"Password=" + cPassword + ";" + ;
"Collation=utf8_general_ci;" + ;
"AUTO_RECONNECT=1;" + ;
"COMPRESSED_PROTO=0;" + ;
"PAD_SPACE=1"
cnConnection:CursorLocation := 3
cnConnection:CommandTimeOut := 600 // seconds
cnConnection:ConnectionTimeOut := 600 // seconds
RETURN cnConnection
STATIC FUNCTION win_OsIs10(); RETURN .T.