O meu erro inexplicável

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

O meu erro inexplicável

Mensagem por JoséQuintas »

Código: Selecionar todos

FUNCTION SetColorFocus()

RETURN "W/N,N/W,W/N"
Como pode isso de vez em quando retornar 0 (ZERO)?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

O meu erro inexplicável

Mensagem por Fernando queiroz »

tenho passado por esse problema tambem, as vezes retorna algo que nao sei o que é e da erro de array , ate tinha reportado sobre isso tentei resolver de varias formas mas volta a acontecer, simplesmente da o erro , retorno na mesma rotina com a mesma consulta e o erro nao ocorre mais, parece que nada aconteceu, sei la , muito estranho.

Error BASE/1132 Bound error: array access
Called from CLASS_PRODUTOS.PRG->(b)PRODUTOSCLASS_PRODUTOS(298)
Called from source\winapi\hbrowse.prg->HBROWSE:LINEOUT(1119)
Called from source\winapi\hbrowse.prg->HBROWSE:PAINT(820)
Called from source\winapi\hbrowse.prg->HBROWSE:ONEVENT(337)
Called from ->HWG_REDRAWWINDOW(0)
Called from source\winapi\hbrowse.prg->HBROWSE:REFRESH(2099)
Called from CLASS_PRODUTOS.PRG->PRODUTOSCLASS:MANUTENCAO_ONKEYDOWN(801)
Called from CLASS_PRODUTOS.PRG->(b)PRODUTOSCLASS_PRODUTOS(256)
Called from source\winapi\hbrowse.prg->HBROWSE:ONEVENT(387)
Called from ->HWG_DLGBOXINDIRECT(0)
Called from source\winapi\hdialog.prg->HDIALOG:ACTIVATE(177)
Called from CLASS_PRODUTOS.PRG->PRODUTOSCLASS:PRODUTOS(600)
Called from SGC.PRG->(b)MAIN(368)
Called from source\winapi\hownbtn.prg->HOWNBUTTON:MUP(414)
Called from source\winapi\hownbtn.prg->HOWNBUTTON:ONEVENT(165)
Called from ->HWG_DLGBOXINDIRECT(0)
Called from source\winapi\hdialog.prg->HDIALOG:ACTIVATE(177)
Called from SGC.PRG->MAIN(947)

HWGUI 2.23 dev Build 3
Date:15/02/2023
Time:07:59:22

Código: Selecionar todos

						FOR EACH oColuna IN oBrowse1:aColumns
								oColuna:bColorBlock := {|| IIF(oBrowse1:aArray[oBrowse1:nCurrent,14] = 1 , BrowseBarColorSecondary, BrowseBarColorPrimary) }	
						NEXT
onde ocorreu o erro , parece que o array retorna sei la com o que

Código: Selecionar todos

************************************************************************************************************************************************************************************************************************
METHOD MANUTENCAO_CARREGA( cAlvo_Consulta ) CLASS PRODUTOSCLASS
************************************************************************************************************************************************************************************************************************
LOCAL aResult :={};
	, oQuery;
	, cQuery

	IF strzero(M->NIV_ACESSO,1,0)$"01"
		cQuery := "SELECT ";
			    + "produtos.PRODUTOS_ID, ";
				+ "produtos.DESPRO, ";
				+ "produtos.TIPUNI, ";
				+ "produtos.PREVEN, ";
				+ "produtos.ESTATU, ";
				+ "if((produtos.ESTATU + produtos.ESTL02) > 0.0000, 0, 1) AS ESTOQUE_TOTAL ";
				+ "FROM produtos ";
				+ cAlvo_Consulta
		oQuery := CONECCOESCLASS():ExecuteSQL(::oServer, cQuery)	
	else
		cQuery := "SELECT ";
				+ "produtos.PRODUTOS_ID, ";
				+ "produtos.DESPRO, ";
				+ "produtos.TIPUNI, ";
				+ "produtos.ESTATU, ";
				+ "produtos.ESTL02, ";
				+ "produtos.CODREF, ";
				+ "produtos.PRECUS, ";
				+ "produtos.PREVEN, ";
				+ "produtos.EAN13, ";
				+ "produtos.NCM, ";
				+ "produtos.CEST, ";
				+ "IF(produtos.PROSER ='1','PRODUTO','SERVICO') AS PROSER, ";
				+ "produtos.QUEM_BLOQ, ";
				+ "if((produtos.ESTATU + produtos.ESTL02) > 0.0000, 0, 1) AS ESTOQUE_TOTAL ";
				+ "FROM produtos ";
				+ cAlvo_Consulta
			oQuery := CONECCOESCLASS():ExecuteSQL(::oServer, cQuery)
	endif

	if ! oQuery:Eof()
		aResult := InverseArray( oQuery:GetRows() )
	endif
	oQuery:Close()

RETURN aResult
rotina onde eu carrego o array , funciona tudo certinho ai sei la porque da o erro
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
ivanil
Usuário Nível 3
Usuário Nível 3
Mensagens: 166
Registrado em: 11 Set 2004 15:13
Localização: Florianópolis/SC

O meu erro inexplicável

Mensagem por ivanil »

Ola Rochinha.

A Ideia era apenas ver se alguém passa pelo mesmo problema e desta forma tentar achar algum ponto comum para informar ao time Harbour, um problema aleatório é o pior dos problemas; da forma como está não tenho sequer argumentos para passar ao time;

Mas eu achei que o Quintas usasse a versão do GIT, não tenho problemas com a versão de novembro;

Neste momento, peguei a mesma classe que dá erro, joguei para um processamento de stress e nenhum erro, seguiu normalmente.

Eu desconfiei de uso de palavras reservadas em nome de propriedades, mas passou normalmente;

Achei também que o uso de hb_gcall pudesse estar limpando alguma coisa indevida, mas no stress rodou normal.

Enfim nada por enquanto.

at;
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

O meu erro inexplicável

Mensagem por Itamar M. Lins Jr. »

Olá!
hb_gcall
Está usando Harbour ou xHarbour na MINIGUI ?

Pq aqui estamos falando do Harbour.(acredito)

Tem uma modificação de variável(aumento) que foi feita no Harbour e mais algumas, tem que pegar no ponto certo do problema.

Código: Selecionar todos

2022-10-17 19:57 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
  * include/hbvm.h
  * include/harbour.hbx
  * src/harbour.def
  * src/vm/hvm.c
    + added new C function:
         extern HB_EXPORT HB_BOOL hb_vmSetKeyPool( HB_BOOL fEnable );
      It allows to disable keyboard pooling by GT driver in main HVM loop.
      It's important in programs which mix GT terminal with GUI library
      which use common event loop. Many GUI objects are not reentrant
      safe and activating event loop during big changes may cause crash.
      Such things can happen in applications which try to mix HBQT
      and GTQTC. To avoid such problems before PRG code is called it's
      enough to disable keyboard pooling in main HVM loop, eg.
         if( hb_vmRequestReenter() )
         {
            HB_BOOL fKeyPool = hb_vmSetKeyPool( HB_FALSE );
            hb_vmPushEvalSym();
            hb_vmPush( pBlockItm );
            hb_vmSend( 0 );
            hb_vmSetKeyPool( fKeyPool );
            hb_vmRequestRestore();
         }
    + added new PRG function:
         __vmKeyPool( [<fEnable>] ) -> <fPrevState>
      It's PRG interface to above C function. If application uses GT driver
      and GUI library using the same event loop and such GUI library does not
      disable keyboard pooling in main HVM loop before PRG code is activated
      then it's enough to call this function at the beginning of application,
      eg.
         PROCEDURE INIT Clip()
            __vmKeyPool( .f. )
         RETURN
      With above peace of code you can mix HBQT or other QT wrapper with GTQTC.
E mais essa daqui:

Código: Selecionar todos

2023-01-30 15:18 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
  * src/rtl/arc4.c
    ! include hbarc4.h instead of arc4.h which does not contain
      required for dynamic libraries export attributes in function
      declaration

  * src/vm/classes.c
    ! cleaned module symbol range checking

  * src/vm/arrays.c
    % optimized AClone() and hb_HClone()

  * src/vm/hvmall.c
    % changed the order of included files to keep alive function macros
      undefined in garbage.c and fm.c

  * src/vm/hvm.c
    ! fixed hb_vmGetRealFuncSym() to work with PRG functions written in C
      and registered in HVM without their own symbol table

  * src/vm/dynsym.c
    ; comment updated
Eu não pego esse erro no meu sistema.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

O meu erro inexplicável

Mensagem por JoséQuintas »

Aí que está....
Isso nem tem no Harbour 3.4.

Supondo que fosse isso, explicaria o problema no 3.2 mas não no 3.4.

Última alteração do 3.4: dezembro/2017, fazem 6 anos.
Sincronizado com Harbour 3.2 nessa data.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

O meu erro inexplicável

Mensagem por Itamar M. Lins Jr. »

Olá!
Outro detalhe é que eu não uso LIBLOAD para base de dados. Acredito que o BO está ai.
Mas tem outras pessoas que usam, não vejo o pessoal da Hwgui reclamar disso e algumas pessoas usam Hwgui com LIBLOAD...
libload = Usar DLLs do windows para acesso a base de dados.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

O meu erro inexplicável

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:libload = Usar DLLs do windows para acesso a base de dados.
NÃO
libload é pra acessar funções de DLLs, e até API do Windows.
Não tem a ver com base de dados, que eu saiba.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

O meu erro inexplicável

Mensagem por JoséQuintas »

2023-02-03 02:46 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/vm/arrays.c
! fixed buffer allocation in AClone()/hb_HClone() with possible cyclic
references.
I created the problem on 2023-01-30 15:18 UTC+0100 and it was reported
as internal error 9024: hb_xrealloc requested to resize to zero bytes
Sobre o problema do 3.2.
TALVEZ esse erro que foi corrigido depois.

Ao invés de voltar pra trás, era ir em frente, SE FOSSE ESSE O PROBLEMA.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

O meu erro inexplicável

Mensagem por JoséQuintas »

Exemplo de uso:

Código: Selecionar todos

   METHOD Init()                           INLINE ::hDLL := hb_libLoad( "RMChart.dll" )
   METHOD Destroy()                        INLINE hb_libFree( ::hDLL )
na classe do RMChart.

Mas o que aconteceria com duas telas fazendo isso ao mesmo tempo, sem tratamento ?
Falharia o segundo hb_libload() e o segundo hb_LIBFree() causaria um estrago ?
Ou poderia liberar antes de usar, ou sei lá o que....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

O meu erro inexplicável

Mensagem por JoséQuintas »

Revisei aqui, e uso praticamente pra RMChart, que é usado só pelo gerente, não justifica erro em outros terminais.

Mas tem gente que usa muito isso, pra impressoras fiscais, e outras coisas, e não tem problema.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

O meu erro inexplicável

Mensagem por Itamar M. Lins Jr. »

Olá!
Sim lembrei, é o ADO. Que vc usam para isso.
Pode ser um problema disso ai.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

O meu erro inexplicável

Mensagem por JoséQuintas »

Pode ser tudo, também pensei no ADO, mas..... uso há muito tempo, antes do problema aparecer.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

O meu erro inexplicável

Mensagem por rochinha »

Amiguinhos,
A função em questão no 3.4 retorna números, e no 3.2 retorna sei lá o que.
A função da hwgui vai retornar números nos dois.
Pois é. Este sempre foi o meu medo de upgrade. Porque se o sistema está funcionando e ao fazer upgrade do compilador passou a acontecer erros os erros não são no sistema mas no compilador então transplantar pedaços do morto no novo vivo resolvem.

Viva Frankstein.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

O meu erro inexplicável

Mensagem por Itamar M. Lins Jr. »

Olá!
Este sempre foi o meu medo de upgrade.
Bem, pode ser um bug do compilador.
Porém uma atualização será sempre em função de correções de versões anteriores. Dos nossos programas e das nossas ferramentas.
Essa coisa de não atualizar ficava no clipper mesmo. Como pode uma versão do HB(2.0) ser melhor que o clipper e uma versão mais nova(3.x) ser pior que a 2 ?

Quanto ao erro, ainda não se sabe a causa. Pode ser Minigui, WVG, HB34, ADO...
Por enquanto apenas José Quintas e o Ivanildo tem reportado o problema sem identificar a causa.
No Harbour houve correção de retorno, POINTER(ponteiro), números inteiros... por exemplo e no HB34... Agora na WVG, Minigui eu não sei.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

O meu erro inexplicável

Mensagem por Itamar M. Lins Jr. »

Olá!
com isso são 3 confirmados.
Com isso encontrar o ponto em comum se torna mais fácil.(ADO/classes ?)

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Responder