Tipo:
Código: Selecionar todos
For i = 1 To Arquivo->(Fcount())
AADD(aRows,{Arquivo->(FieldGet(i))})
Next
DbAppend()
For i = 1 To Arquivo->(Fcount())
Arquivo->(FieldPut(i,aRows[i]))
Next
Moderador: Moderadores

Código: Selecionar todos
For i = 1 To Arquivo->(Fcount())
AADD(aRows,{Arquivo->(FieldGet(i))})
Next
DbAppend()
For i = 1 To Arquivo->(Fcount())
Arquivo->(FieldPut(i,aRows[i]))
Next

Código: Selecionar todos
Select(cArqDoador)
Go nRecNoDoador
If !Eof()
Select(cArqRecebedor)
APPEND BLANK
Rlock()
For zd:= 1 To (cArqDoador)->(FCount())
For zr:= 1 To (cArqRecebedor)->(FCount())
If (cArqRecebedor)->(FieldName(zr) == (cArqDoador)->(FieldName(zd)))
(cArqRecebedor)->(FieldPut(zr,(cArqDoador)->(FieldGet(zd))))
Exit
EndIf
Next
Next
Unlock
EndIf

Código: Selecionar todos
FUNCTION DuplicaReg()
// NSI - SOFWARES E SITES
// 27-05-2018 ANDRIL
LOCAL i, maxcmpArea2, arCmpRequisitados:={}
maxcmpArea2=fcount()
for i = 1 to maxcmpArea2
aadd(arCmpRequisitados,fieldGet(i))
next
APPEND BLANK
for i = 1 to maxcmpArea2
fieldPut(i,arCmpRequisitados[i])
next
return
DuplicaReg()

Código: Selecionar todos
Arquivo->( DuplicaRegistro() )
FUNCTION DuplicaRegistro()
LOCAL aList := {}
FOR nCont = 1 TO FCount()
AAdd( aList, FieldGet( nCont ) )
NEXT
IF dbAppend() // seria melhor rotina com tratamento de erro
FOR nCont = 1 TO FCount()
FieldPut( nCont, aList[ nCont ] )
NEXT
SKIP 0
UNLOCK
ENDIF
RETURN Nil




Código: Selecionar todos
LOCAL nRecno
USE Teste SHARED NEW
nRecno := 11
APPEND FROM TESTE RECORD nRecno
José, ao usar DbAppend() ou APPEND BLANK, o novo registro criado já estará bloqueado e só se torna visível na rede após salvar os registros pendentes com DbCommit() ou COMMIT.E o dbAppend() ? fez na área correta?
Talvez tenha faltado o lock() e unlock()
If DbAppend() has successfully locked the new record, all other records locks set in the database are released by default. To keep pending record locks in place, the value .F. (false) must be passed to DbAppend().

E porque precisaria de outros registros bloqueados, se está incluindo um novo?Jairo Maia escreveu:José, ao usar DbAppend() ou APPEND BLANK, o novo registro criado já estará bloqueado e só se torna visível na rede após salvar os registros pendentes com DbCommit() ou COMMIT.