Página 1 de 1

O que seria NUMERIC:___HOBJ

Enviado: 25 Ago 2017 10:11
por asimoes
Pessoal,

Alguém poderia explicar o que seria esse erro:

cRecordSet := oCommand:Execute()
__CarregaTemp( cRecordSet,nMaxLin,@cTemp,@cErro,lMem,lCriaNTX,lMarca,lCharL,@nContL ) // O ERRO ACONTECE NESSA LINHA ????


1005 Message not found
Operação: NUMERIC:___HOBJ


É um erro eventual, ainda não entendi em que situação acontece.

O que seria NUMERIC:___HOBJ

Enviado: 25 Ago 2017 14:43
por acelconsultoria
Olha... nunca vi esse erro... mas pela mensagem eu suspeitaria que, em algum momento ou local interno na função, ocorre um erro de tipo de variável/campo.

O que seria NUMERIC:___HOBJ

Enviado: 29 Ago 2017 16:31
por Kapiaba
Mostre:

Código: Selecionar todos

   FUNCTION  __CarregaTemp()
Acho que tem uma variável que não é numérica ou vice-versa.

Abs.

O que seria NUMERIC:___HOBJ

Enviado: 29 Ago 2017 17:56
por JoséQuintas
1005 Message not found
Operação: NUMERIC:___HOBJ
A mensagem está esquisita, mas "Message not found" tem a ver com classe, e não existir o nome dentro da classe.

Apenas suposição:
Como a linha anterior se refere a obter um recordset, TALVEZ também possa ser tratamento de NULO pra uma variável numérica.
Explicaria o NUMERIC que aparece aí, mas é só suposição.

O que seria NUMERIC:___HOBJ

Enviado: 29 Ago 2017 17:59
por asimoes
Kapiaba,

O erro era aleatório, todas as variáveis são verificadas antes de serem passadas para a função.

Eu não sei se tem haver, eu tenho uma função feita com hwgui para mostrar o processamento dessas funções, eu removi e aparentemente não aconteceu de novo o erro

A função em hwgui é essa:

Código: Selecionar todos

FUNCTION GDlg_Wait( cTitle, cMensagem_Wait, cArqVideo, nSizeW, nSizeH )

LOCAL oDlg_Wait
LOCAL oLabel_Wait
LOCAL oAnimation
LOCAL nSizeJanela
LOCAL nRowAnim
LOCAL nColText
LOCAL oIconWait   :=HIcon():AddFile("P:\GERAL\HARBOUR\IAMPULHETA.ICO")
LOCAL lAutoPlay   :=.T.
LOCAL lCenter     :=.T.
LOCAL lTransparent:=.T.
LOCAL oFont

PRIVATE nJanelaAplicacao
 
   hb_Default(@cArqVideo, "P:\GERAL\HARBOUR\AMPULHETA.AVI")
   hb_Default(@nSizeW, 32)
   hb_Default(@nSizeH, 32)
   
   nSizeJanela := 90
   nRowAnim    := 15
   nColText    := 50

   IF nSizeW = 62
      nRowAnim := 0
      nColText := 80
   ENDIF
   

   oFont       := HFont():Add( "Lucida Console", 7)

   INIT DIALOG oDlg_Wait TITLE cTitle ;
               ICON oIconWait ;
               AT 0, 0 ;
               SIZE 370, nSizeJanela  STYLE DS_CENTER + WS_VISIBLE 
         
   @ 10, nRowAnim ANIMATION oAnimation OF oDlg_Wait SIZE nSizeW, nSizeH AUTOPLAY CENTER TRANSPARENT FILE cArqVideo
   
   @ nColText, 25 SAY oLabel_Wait CAPTION cMensagem_Wait FONT oFont SIZE 340, 19 COLOR hwg_RGB( 0, 0, 255 )

   oDlg_Wait:Activate( .T. )
   
RETURN oDlg_Wait

O que seria NUMERIC:___HOBJ

Enviado: 29 Ago 2017 18:16
por asimoes
Nessa chamada, o resultset tem muitos registro e dá aquela informação famosa do windows: está aplicação não está respondendo... quando faz o execute()

cRecordSet := oCommand:Execute()

O que seria NUMERIC:___HOBJ

Enviado: 29 Ago 2017 18:21
por JoséQuintas
Pesquisando HOBJ

HMG3: TOleAuto() h_TOle.prg

HMGE: win32Ole

HWGUI: h_activex.prg

GTWVG: activex.prg

xhb (xHarbour): xhbole.prg

Em comum a todos: activex e/ou OLE

O que seria NUMERIC:___HOBJ

Enviado: 29 Ago 2017 19:28
por gilbertosilverio
Simoes,

Você já tentou incluir um hwg_doevents() para ver se o erro para...

O que seria NUMERIC:___HOBJ

Enviado: 29 Ago 2017 21:10
por JoséQuintas
Ou o evento continua mesmo depois de fechar a janela e por isso dá erro?

O que seria NUMERIC:___HOBJ

Enviado: 30 Ago 2017 06:42
por asimoes
Como a função de mensagem de processamento tem uma mensagem e uma animação (ampulheta) eu uso no loop depois do Execute() o hwg_DoEvents()
O que percebi é que o erro ocorre na chamada da função __CarregaTemp( cRecordSet,nMaxLin,@cTemp,@cErro,lMem,lCriaNTX,lMarca,lCharL,@nContL ) que é chamado depois do Execute(), tenho a impressão que o evento do execute do ado command pela demora por ser muito grande, esteja provocando o erro.
Eu não sei se é também por conta da função de mensagem de processamento que está sendo usada dentro da __CarregaTemp que é um dbf temporário.