Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Erro em alguma máquinas.
Message
General information
Forum:
Visual FoxPro
Category:
COM/DCOM and OLE Automation
Miscellaneous
Thread ID:
00808799
Message ID:
00812731
Views:
27
Também não funcionou.

Mas achei outra causa para o erro :

O path. como o Componente com, esta em uma pasta que não é a dos dados, ele "as vezes" não acha o arquivo para ser aberto.

Coloquei uma rotina para contornar isto. Ficou nota 1000. A unica coisa que não entendo é o porque de "as vezes". Exemplo : Executava o mesmo método do componente 5 vezes seguidas sem erro, na 6 o erro acontecia, e em algumas máquinas.

Desta forma o erro não aparece mais e ficou 100%. Só falta explicar este Mistério.
#DEFINE ARQ_GERAID   "gw_gera_id"

FUNCTION _st_Gw_GeraId (tcCampo)
	LOCAL lnId,lcArq,lcTabela,lnRepro,llBuff
	LOCAL loSession,lnOldSession,lnIdSession,lcOldError,m.lcPathDbc,m.lcPathOld

	m.lcOldError   = ON("ERROR")
	m.lnOldSession = SET("Datasession")
	m.loSession    = CREATEOBJECT("Session")
	m.lnIdSession  = loSession.DataSessionId 
	m.lcTabela     = ALIAS()
	m.lcPathDbc    = ADDBS(JUSTPATH( DBC() ))  && -->NOVO
	m.lcPathOld    = ADDBS(SYS(5)+SYS(2003))  && --> novo
	
	IF EMPTY(lcPathDbc) AND !EMPTY(lcTabela)  && --> novo
		lcPathDbc = ADDBS(JUSTPATH( DBF() )) && --> novo
	ENDIF
		
	ON ERROR DO _geraId_error WITH ERROR()
	
	SET DATASESSION TO m.lnIdSession 
	
	CD &lcPathDbc && --> novo
         IF !USED(ARQ_GERAID)
	   USE ARQ_GERAID IN 0 SHARED  
	ENDIF 

	SELECT ARQ_GERAID
	GO TOP 


***
* 
***
	CD &lcPathOld && --> novo
	SET REPROCESS TO m.lnRepro
	SET DATASESSION TO m.lnOldSession
	RELEASE loSession 

	IF NOT EMPTY(m.lcTabela)
		SELECT (lcTabela)
	ENDIF
	ON ERROR &lcOldError

	RETURN lnId
ENDFUNC 	
>Alow Alow PCC!
>
>Entendi o que vc fez, só não entendi o pq do erro! :-(
>
>Alguns testes:
>
>1 - Ao invés de USE &Tabela, tente USE (Tabela)
>
>2 - Use a cláusula IN (Tabela) em comandos do tipo REPLACE, SKIP, etc...
>
>Talvez funcione...
>
>[]s!
Paulo Cesar Carneiro
desenvolvimento@controplan.com.br


"My God, what have we done?"
-- Capt. Robert Lewis, co-pilot of the Enola Gay, recalling the moment the atomic bomb exploded over Hiroshima

At 8:15 a.m. on August 6 1945
Previous
Reply
Map
View

Click here to load this message in the networking platform