copiar um registro inteiro direto

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
rosalvo rosa
Usuário Nível 3
Usuário Nível 3
Mensagens: 156
Registrado em: 10 Jan 2006 19:21
Localização: Curitiba - PR

copiar um registro inteiro direto

Mensagem 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.
frazato
Usuário Nível 3
Usuário Nível 3
Mensagens: 219
Registrado em: 08 Jul 2004 07:45

Re: copiar um registro inteiro direto

Mensagem 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
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: copiar um registro inteiro direto

Mensagem 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
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
rosalvo rosa
Usuário Nível 3
Usuário Nível 3
Mensagens: 156
Registrado em: 10 Jan 2006 19:21
Localização: Curitiba - PR

Re: copiar um registro inteiro direto

Mensagem por rosalvo rosa »

Muito bom. Agora não perco mais tempo..

Obrigado gente. ;D
Responder