HBMYSQL erro Base/1004 HB_SETKey
Enviado: 17 Mai 2014 20:45
Senhores, observem o código abaixo...
Se crio um PRG de testes e compilo hbmk2 TesteMySQL.prg -lHBMYSQL -lLIBMYSQL
Executa perfeitamente, porém ao incorporar o código abaixo ao meu sistema, onde troquei o nome da função de MAIN para TESTEMYSQL, apresenta um erro abaixo:
Erro BASE/1004
Rotina TesteMySQL
Linha X ( no caso aki do fórum ficou na linha 62 esta comentada)
Variável/Função HB_SETKEY
Não sei o q pode ser.
Pensei q poderia ser o fato de eu Linkar várias LIBS e talvez alguma esteja conflitando com a da Contrib do MySQL... (Abaixo vou colocar as libs q estou utilizando)
LIBS q estou linkando junto com minha APP onde ocorre o erro ao tentar inserir o código acima:
Se crio um PRG de testes e compilo hbmk2 TesteMySQL.prg -lHBMYSQL -lLIBMYSQL
Executa perfeitamente, porém ao incorporar o código abaixo ao meu sistema, onde troquei o nome da função de MAIN para TESTEMYSQL, apresenta um erro abaixo:
Erro BASE/1004
Rotina TesteMySQL
Linha X ( no caso aki do fórum ficou na linha 62 esta comentada)
Variável/Função HB_SETKEY
Não sei o q pode ser.
Pensei q poderia ser o fato de eu Linkar várias LIBS e talvez alguma esteja conflitando com a da Contrib do MySQL... (Abaixo vou colocar as libs q estou utilizando)
Código: Selecionar todos
//------------------------------------------------------------------------------
PROCEDURE MAIN( nSeq )
LOCAL oQuery, oQuery2, oRow, aStru, aTabelas := {}, ;
cBaseDados := 'baseteste' , ;
cTabela := 'myTable'
PUBLIC oServer
PUBLIC oTable
*****************************************************************************
* Configurar pagina de codigo apropriada para cada sistema operacional *
* Nota : As requisicoes de codepage possibilitam trabalhar com varios SOs *
* e charsets pt_br ou seja, corrigem a acentuacao. *
* Para paginas de codigo usar PT850 ou PTISO conforme o config do SO *
*****************************************************************************
REQUEST HB_CODEPAGE_PTISO
REQUEST HB_CODEPAGE_PT850
Hb_LangSelect("PT")
Hb_CdpSelect("PT850")
SET CENTURY ON
SET EPOCH TO 1960
CLS
*-- Estabelece a conexao com o servidor
IF ConectaBD()
* Seleciona o banco de dados *
oServer:SelectDB( cBaseDados )
IF oServer:NetErr()
Alert( oServer:Error() )
oServer:Destroy()
RETURN
ENDIF
//--> Testando se a tabela existe na base de dados
aTabelas := oServer:ListTables()
IF ! Ascan( aTabelas, cTabela) > 0
Alert( 'A tabela '+cTabela+' nao existe nesta base de dados' )
oServer:Destroy()
RETURN
ENDIF
ENDIF
*******************************************************************
* Selecionando dados da tabela *
*******************************************************************
oTable := oServer:Query('SELECT * from myTable')
IF oTable:NetErr()
IF Alert( oTable:Error(),{'Continua','Sai'} )!=1
oServer:Destroy()
QUIT
ENDIF
ENDIF
? ' Navegando pelos dados da tabela '
oB := TBrowseSQL():New( 03, 01, 20, 79, oServer, oTable ) //--> Define o Objeto Tbrowse baseado na tabela SQL
//--> Linha onde ocorre o problema
oB:SetKey( K_CTRL_V, { |oB, nKey | DefProc( oB, nKey, cTabela ) } ) //--> Define a tecla o q faz
WHILE .T.
oB:ForceStable()
IF ( oB:ApplyKey( Inkey( 0 ) ) == - 1 )
EXIT
ENDIF
END
*******************************************************************
* Fechando a conexao *
*******************************************************************
oTable:Destroy()
oServer:Destroy()
RETURN
//---------------------------------------------------
FUNCTION DefProc( ob, k, ctable )
LOCAL op := ' '
LOCAL orecord
LOCAL aFDatas := Array( 6 )
LOCAL cScreen := SaveScreen()
LOCAL n
cls
SetColor( 'W/B,W/B+,W/R,B/W' )
Dispbox( 00, 00, MaxRow(), MaxCol() )
oRecord := oB:oQuery:GetBlankRow()
for n := 1 to 6
? oRecord:FieldType(n)
if oRecord:FieldType(n) = 'N'
Afill( afDatas,0,n,1 )
elseif oRecord:FieldType(n) = 'C'
Afill( afDatas,Space(oRecord:FieldLen(n)),n,1 )
elseif oRecord:FieldType(n) = 'U'
Afill( afDatas,CtoD('//'),n,1 )
endif
next
@ 02,02 SAY 'CODIGO' GET afdatas[ 1 ]
@ 03,02 SAY 'NOME' GET afdatas[ 2 ]
@ 04,02 SAY 'DDD' GET afdatas[ 3 ]
@ 05,02 SAY 'TELEFONE' GET afdatas[ 4 ]
@ 06,02 SAY 'E_MAIL' GET afdatas[ 5 ]
@ 07,02 SAY 'DATA' GET afdatas[ 6 ]
READ
@ 23,02 SAY 'Salva (S/N)?' GET op PICT "!"
READ
if op == "S"
// oRecord := oB:oQuery:GetBlankRow()
for n := 1 to 5
oRecord:FieldPut( n, afdatas[ n ] )
next
oRecord:FieldPut( 6, Date() )
oTable:Append( oRecord )
if oTable:NetErr()
Alert( oTable:Error() )
endif
endif
RestScreen( ,,,, cScreen )
oTable:Refresh()
ob:RefresHall()
return( nil )
LIBS q estou linkando junto com minha APP onde ocorre o erro ao tentar inserir o código acima:
Código: Selecionar todos
-lhbxpp
-lhbct
-lhbtip
-lhbwin
-lxhb
-lhbhpdf
-lhbcomm
-llibmysql
-lhbmysql
-ld:\dev\harbour\examples\gtwvw\lib\win\msvc\gtwvw
-lhwgui
-lprocmisc
-lhwg_qhtm