AJUDA - URGENTE
Enviado: 27 Jul 2006 14:03
Pessoal, estou com o seguinte problema, em um cliente esta ocorrendo de todos os dias um arquivo de Pedido(que é mensal) esta sendo apagado, e so ele esta sendo apagado. Ja olhei de cabo a rabo o fonte e nao achei nada que apague tal arquivo.
O maximo que poderia ser é o comando PACK que dou apenas no final do dia para apagar registros deletados, mas acredito que nao seja isso.
Minha suspeita é que tem alguem fazendo isso.
Alguem poderia me dizer como posso descobrir isso ou uma maneira de bloquear que os arquivos sejam apagados.
Abaixo esta minha rotina de criacao de arquivo e indices
//=====> ate aqui
Obrigado
O maximo que poderia ser é o comando PACK que dou apenas no final do dia para apagar registros deletados, mas acredito que nao seja isso.
Minha suspeita é que tem alguem fazendo isso.
Alguem poderia me dizer como posso descobrir isso ou uma maneira de bloquear que os arquivos sejam apagados.
Abaixo esta minha rotina de criacao de arquivo e indices
Código: Selecionar todos
//-----------------------------------
FUNCTION ABRE(CARQ,ASTRUCT,AIND,CALIAS,LMEN)
//-----------------------------------
LOCAL BLASTH,OBJERROR,LRET:=.T.,NI,CCAMPO,CIND,NCERRIND:=0 , ;
CAERR:="",CHARQ
IF LMEN=NIL
LMEN:=.T.
ENDIF
BLASTH:=ERRORBLOCK({|X| BREAK(X) } )
IF LMEN
MENS("ABRINDO ARQUIVO "+CARQ+".")
ENDIF
WHILE .T.
CARQI:=SUBS(CARQ,1,LEN(CARQ)-3)+"CDX"
BEGIN SEQUENCE
IF !FILE(CARQ) .AND. !EMPTY(ASTRUCT)
DBCREATE(CARQ,ASTRUCT,'SIXCDX')
DEL(CARQI)
ELSEIF !FILE(CARQ)
LRET:=.F.
ENDIF
IF FILE(CARQ)
IF !EMPTY(SELECT(CALIAS))
&CALIAS->(DBCLOSEAREA())
ENDIF
IF NCERRIND>50 .AND. !EMPTY(AIND)
DEL(CARQI)
ENDIF
IF !FILE(CARQI) .AND. !EMPTY(AIND)
DBUSEAREA(.T.,'SIXCDX',CARQ,CALIAS,.F.)
WHILE EMPTY(SELECT(CALIAS))
DBUSEAREA(.T.,'SIXCDX',CARQ,CALIAS,.F.)
ENDDO
FOR NI=1 TO LEN(AIND)
CCAMPO:=AIND[NI,1]
CIND :=AIND[NI,2]
INDEX ON &(CCAMPO) TAG &(CIND) TO &CARQI
NEXT
&CALIAS->(DBCLOSEAREA())
ENDIF
DBUSEAREA(.T.,'SIXCDX',CARQ,CALIAS,.T.)
IF !EMPTY(AIND)
SET INDEX TO &CARQI
DBSETORDER(LEN(AIND))
IF INDEXORD()<>LEN(AIND)
IF !EMPTY(SELECT(CARQ))
&CARQ->(DBCLOSEAREA())
ENDIF
NCERRIND++
BREAK
ENDIF
CIND:=AIND[1,2]
SET ORDER TO TAG &CIND
ELSE
DBGOTO(1)
ENDIF
ELSE
LRET:=.F.
ENDIF
RECOVER USING OBJERROR
IF !EMPTY(SELECT(CARQ))
&CARQ->(DBCLOSEAREA())
ENDIF
IF (OBJERROR:SUBSYSTEM = "SIXCDX")
IF (OBJERROR:SUBCODE = 602)
IF (SUBS(OBJERROR:FILENAME,-3) = "CDX")
DEL(OBJERROR:FILENAME)
ENDIF
ENDIF
ENDIF
LOOP
END
EXIT
ENDDO
ERRORBLOCK(BLASTH)
IF LMEN
MENS()
ENDIF
RETURN(LRET)Obrigado