boa tarde, segue como eu faço com os antigos DBF :
* As funcoes que uso:
FUNCTION OpenFile( cFile, cAlias, nModo, lRetenta )
DEFAULT cAlias TO Subs( cFile, rAt( '\', cFile )+1), nModo TO 2
DEFAULT lRetenta TO nModo > 1
Do While .T.
DO CASE; Case nModo == 1
USE (cFile) ALIAS (cAlias) NEW EXCLUSIVE
Case nModo == 2
USE (cFile) ALIAS (cAlias) NEW SHARED
Other
USE (cFile) ALIAS (cAlias) NEW SHARED READONLY
End
If neterr()
If lRetenta .AND. MsgRetryCancel( 'Arquivo ' + cFile + ;
' sendo usado em outra estacao!', 'Alerta')
loop
else
retu .f.
endif
Endif
exit
Enddo
return .T.
***** rede ***********
FUNCTION REGLOCK(P1)
local Local1
if p1=NIL
p1:= 5
endif
do while (.T.)
for Local1:= 1 to p1
if (RLock())
return .T.
endif
InKey(0.5)
next
if !msgyesno("Registro Bloqueado! Tenta novamente ?")
return .F.
endif
enddo
RETURN( .F. )
function adireg(tempo)
local loca1
do while (.T.)
for Local1:= 1 to tempo
append blank
if (!neterr())
return .T.
endif
InKey(0.5)
next
if !msgyesno("Arquivo Bloqueado! Tenta novamente ?")
return .F.
endif
enddo
return .T.
* Exemplos:
para abrir os arquivos:
if OpenFile( ".\dados\orca","or", 1, .F. )
select or
or->(dbgotop())
endif
* para travar o registro para alterar ou excluir:
if reglock(10)
replace confbds->contro with "OK"
replace confbds->contro1 with "OK1"
dbunlock()
endif
* para incluir novo registro:
if adireg(10)
replace numterm with "01"
replace conf->t1 with 12
replace conf->t2 with 18
dbunlock()
endif