Página 1 de 1

copiar um registro inteiro direto

Enviado: 18 Ago 2009 11:50
por rosalvo rosa
Olá amigos!

Volta e meia me aparece a nescessidade de copiar um registro de um arquivo.dbf para outro
arq*.dbf, onde o registro vai completo, sem alterações. Será que existe um modo direto de
fazer isso? Sem precisar lançar todos os campos depois do append blank ?


Ex:

use arq1.dbf new
use arq2.dbf new

Select arq1
While cond1 = 1
arq2->campo1:= arq1->campo1
arq2->campo2:= arq1->campo2
ate´
arq2->campo99:= arq1->campo99
EndDo


Gostaria de sintetisar as 99 linhas em uma.
Tem como ?

Um abraço.

Re: copiar um registro inteiro direto

Enviado: 18 Ago 2009 12:19
por frazato
Close All

clear

Sele 1
Use Produto Alias Prod1
? 'Copiando Extrutura'
Copy Struct to Produto2.dbf


Sele 2
Use Produto2 alias Prod2


Sele Prod1
nCampos := DbStruct()
Go Top

Sele Prod2
Append Blank
For i:= 1 to Len(nCampos)
cCampo1:= nCampos[i,1]
? cCampo1
Repla Prod2->&(cCampo1) With Prod1->&(cCampo1)
Next

Sele Prod2
Dbedit(0,0,24,79)
Close all
Return Nil


Frazato

Re: copiar um registro inteiro direto

Enviado: 18 Ago 2009 12:35
por Maligno
Se é uma cópia fiel, mais facil será se for direto:

Código: Selecionar todos

for i := 1 to Origem->(FCount())
    Destino->(FieldPut(i,Origem->(FieldGet(i))))
next

Re: copiar um registro inteiro direto

Enviado: 18 Ago 2009 15:10
por rosalvo rosa
Muito bom. Agora não perco mais tempo..

Obrigado gente. ;D