Hay alguna manera de poder copiar todos los campos de un registro de una DBF
a otra DBF con la misma estructura...
Yo lo hago de la siguiente manera...
While ASSENTAMENTS2->( !Eof() )
ASSENTAMENTS->( DbAppend() )
ASSENTAMENTS->ASSENT := ASSENTAMENTS2->ASSENT + nAssent
ASSENTAMENTS->DATAA := ASSENTAMENTS2->DATAA
ASSENTAMENTS->COMENTARI := ASSENTAMENTS2->COMENTARI
ASSENTAMENTS->IMPORT := ASSENTAMENTS2->IMPORT
ASSENTAMENTS->DEBE := ASSENTAMENTS2->DEBE
ASSENTAMENTS->HABER := ASSENTAMENTS2->HABER
ASSENTAMENTS->ORDRE := ASSENTAMENTS2->ORDRE
ASSENTAMENTS->IVA := ASSENTAMENTS2->IVA
ASSENTAMENTS->USUARI := ASSENTAMENTS2->USUARI
ASSENTAMENTS->DOCUMENT := ASSENTAMENTS2->DOCUMENT
ASSENTAMENTS->MOV1 := ASSENTAMENTS2->MOV1
ASSENTAMENTS->MOV2 := ASSENTAMENTS2->MOV2
ASSENTAMENTS->MOV3 := ASSENTAMENTS2->MOV3
ASSENTAMENTS2->( DbSkip() )
EndDo
Pero no se si existe alguna funcion propia de xHarbour que sirva para este
menester y me evite de algun error si modifico la estructura de las DBFs y
no añado o saco el campo en este bucle.
Algo como...
While ASSENTAMENTS2->( !Eof() )
ASSENTAMENTS->( DbAppend() )
ASSENTAMENTS->Field := ASSENTAMENTS2->Field
ASSENTAMENTS2->( DbSkip() )
EndDo
Gracias.
Un Saludo,
Xevi.
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Copiar TODO un registro
Copiar TODO un registro
Xevi,
Mirate las funciones FieldGet() y FieldPut()
Saludos
Jose A. Suarez
Mirate las funciones FieldGet() y FieldPut()
Saludos
Jose A. Suarez
Copiar TODO un registro
José Alfonso,
No veo en la ayuda de xHarbour esas funciones.
He visto la ayuda de Xailer, pero esas funciones creo entender que hacen
referencia a la Clase TDataField.
Yo lo necesito si se puede hacer directamente sobre un USE.
He probado...
While ASSENTAMENTS2->( !Eof() )
ASSENTAMENTS->( DbAppend() )
ASSENTAMENTS->( FieldPut() ) := ASSENTAMENTS2->( FieldGet() )
ASSENTAMENTS2->( DbSkip() )
EndDo
Un Saludo,
Xevi.
"José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje de
noticias news:4727ac0e$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Xevi,
>
> Mirate las funciones FieldGet() y FieldPut()
>
> Saludos
>
> Jose A. Suarez
No veo en la ayuda de xHarbour esas funciones.
He visto la ayuda de Xailer, pero esas funciones creo entender que hacen
referencia a la Clase TDataField.
Yo lo necesito si se puede hacer directamente sobre un USE.
He probado...
While ASSENTAMENTS2->( !Eof() )
ASSENTAMENTS->( DbAppend() )
ASSENTAMENTS->( FieldPut() ) := ASSENTAMENTS2->( FieldGet() )
ASSENTAMENTS2->( DbSkip() )
EndDo
Un Saludo,
Xevi.
"José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje de
noticias news:4727ac0e$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Xevi,
>
> Mirate las funciones FieldGet() y FieldPut()
>
> Saludos
>
> Jose A. Suarez
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
Copiar TODO un registro
> While ASSENTAMENTS2->( !Eof() )
> ASSENTAMENTS->( DbAppend() )
For i := 1 To ASSENTAMENTS->( FCount() )
> ASSENTAMENTS->( FieldPut(i, ASSENTAMENTS2->( FieldGet(i) ) ) )
Next
> ASSENTAMENTS2->( DbSkip(1) )
> EndDo
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
"Xevi" <xevicomas@gmail.com> escribió en el mensaje news:[email=4727b092@ozsrv2.ozlan.local...]4727b092@ozsrv2.ozlan.local...[/email]
> José Alfonso,
>
> No veo en la ayuda de xHarbour esas funciones.
> He visto la ayuda de Xailer, pero esas funciones creo entender que hacen
> referencia a la Clase TDataField.
> Yo lo necesito si se puede hacer directamente sobre un USE.
>
> He probado...
>
> While ASSENTAMENTS2->( !Eof() )
> ASSENTAMENTS->( DbAppend() )
> ASSENTAMENTS->( FieldPut() ) := ASSENTAMENTS2->( FieldGet() )
> ASSENTAMENTS2->( DbSkip() )
> EndDo
>
>
> Un Saludo,
> Xevi.
>
>
> "José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje de
> noticias news:4727ac0e$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Xevi,
>>
>> Mirate las funciones FieldGet() y FieldPut()
>>
>> Saludos
>>
>> Jose A. Suarez
>
--
> ASSENTAMENTS->( DbAppend() )
For i := 1 To ASSENTAMENTS->( FCount() )
> ASSENTAMENTS->( FieldPut(i, ASSENTAMENTS2->( FieldGet(i) ) ) )
Next
> ASSENTAMENTS2->( DbSkip(1) )
> EndDo
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
"Xevi" <xevicomas@gmail.com> escribió en el mensaje news:[email=4727b092@ozsrv2.ozlan.local...]4727b092@ozsrv2.ozlan.local...[/email]
> José Alfonso,
>
> No veo en la ayuda de xHarbour esas funciones.
> He visto la ayuda de Xailer, pero esas funciones creo entender que hacen
> referencia a la Clase TDataField.
> Yo lo necesito si se puede hacer directamente sobre un USE.
>
> He probado...
>
> While ASSENTAMENTS2->( !Eof() )
> ASSENTAMENTS->( DbAppend() )
> ASSENTAMENTS->( FieldPut() ) := ASSENTAMENTS2->( FieldGet() )
> ASSENTAMENTS2->( DbSkip() )
> EndDo
>
>
> Un Saludo,
> Xevi.
>
>
> "José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje de
> noticias news:4727ac0e$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Xevi,
>>
>> Mirate las funciones FieldGet() y FieldPut()
>>
>> Saludos
>>
>> Jose A. Suarez
>
--
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
Copiar TODO un registro
igual si vas a copiar todo, puedes usar el comando
Append From .....
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
"Xevi" <xevicomas@gmail.com> escribió en el mensaje news:[email=4727b092@ozsrv2.ozlan.local...]4727b092@ozsrv2.ozlan.local...[/email]
> José Alfonso,
>
> No veo en la ayuda de xHarbour esas funciones.
> He visto la ayuda de Xailer, pero esas funciones creo entender que hacen
> referencia a la Clase TDataField.
> Yo lo necesito si se puede hacer directamente sobre un USE.
>
> He probado...
>
> While ASSENTAMENTS2->( !Eof() )
> ASSENTAMENTS->( DbAppend() )
> ASSENTAMENTS->( FieldPut() ) := ASSENTAMENTS2->( FieldGet() )
> ASSENTAMENTS2->( DbSkip() )
> EndDo
>
>
> Un Saludo,
> Xevi.
>
>
> "José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje de
> noticias news:4727ac0e$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Xevi,
>>
>> Mirate las funciones FieldGet() y FieldPut()
>>
>> Saludos
>>
>> Jose A. Suarez
>
--
Append From .....
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
"Xevi" <xevicomas@gmail.com> escribió en el mensaje news:[email=4727b092@ozsrv2.ozlan.local...]4727b092@ozsrv2.ozlan.local...[/email]
> José Alfonso,
>
> No veo en la ayuda de xHarbour esas funciones.
> He visto la ayuda de Xailer, pero esas funciones creo entender que hacen
> referencia a la Clase TDataField.
> Yo lo necesito si se puede hacer directamente sobre un USE.
>
> He probado...
>
> While ASSENTAMENTS2->( !Eof() )
> ASSENTAMENTS->( DbAppend() )
> ASSENTAMENTS->( FieldPut() ) := ASSENTAMENTS2->( FieldGet() )
> ASSENTAMENTS2->( DbSkip() )
> EndDo
>
>
> Un Saludo,
> Xevi.
>
>
> "José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje de
> noticias news:4727ac0e$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Xevi,
>>
>> Mirate las funciones FieldGet() y FieldPut()
>>
>> Saludos
>>
>> Jose A. Suarez
>
--
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Copiar TODO un registro
Ramón,
Gracias, funciona perfecto!!!
No puedo utilizar Append From... un campo "ASSENT" varía de valor para no coincidir con los que ya posee el fichero receptor.
Un Saludo,
Xevi.
"Ramón Zea" <zeasoftware@hotmail.com> escribió en el mensaje de noticias news:[email=4727c186@ozsrv2.ozlan.local...]4727c186@ozsrv2.ozlan.local...[/email]
igual si vas a copiar todo, puedes usar el comando
Append From .....
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
"Xevi" <xevicomas@gmail.com> escribió en el mensaje news:[email=4727b092@ozsrv2.ozlan.local...]4727b092@ozsrv2.ozlan.local...[/email]
> José Alfonso,
>
> No veo en la ayuda de xHarbour esas funciones.
> He visto la ayuda de Xailer, pero esas funciones creo entender que hacen
> referencia a la Clase TDataField.
> Yo lo necesito si se puede hacer directamente sobre un USE.
>
> He probado...
>
> While ASSENTAMENTS2->( !Eof() )
> ASSENTAMENTS->( DbAppend() )
> ASSENTAMENTS->( FieldPut() ) := ASSENTAMENTS2->( FieldGet() )
> ASSENTAMENTS2->( DbSkip() )
> EndDo
>
>
> Un Saludo,
> Xevi.
>
>
> "José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje de
> noticias news:4727ac0e$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Xevi,
>>
>> Mirate las funciones FieldGet() y FieldPut()
>>
>> Saludos
>>
>> Jose A. Suarez
>
--
Gracias, funciona perfecto!!!
No puedo utilizar Append From... un campo "ASSENT" varía de valor para no coincidir con los que ya posee el fichero receptor.
Un Saludo,
Xevi.
"Ramón Zea" <zeasoftware@hotmail.com> escribió en el mensaje de noticias news:[email=4727c186@ozsrv2.ozlan.local...]4727c186@ozsrv2.ozlan.local...[/email]
igual si vas a copiar todo, puedes usar el comando
Append From .....
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
"Xevi" <xevicomas@gmail.com> escribió en el mensaje news:[email=4727b092@ozsrv2.ozlan.local...]4727b092@ozsrv2.ozlan.local...[/email]
> José Alfonso,
>
> No veo en la ayuda de xHarbour esas funciones.
> He visto la ayuda de Xailer, pero esas funciones creo entender que hacen
> referencia a la Clase TDataField.
> Yo lo necesito si se puede hacer directamente sobre un USE.
>
> He probado...
>
> While ASSENTAMENTS2->( !Eof() )
> ASSENTAMENTS->( DbAppend() )
> ASSENTAMENTS->( FieldPut() ) := ASSENTAMENTS2->( FieldGet() )
> ASSENTAMENTS2->( DbSkip() )
> EndDo
>
>
> Un Saludo,
> Xevi.
>
>
> "José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje de
> noticias news:4727ac0e$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Xevi,
>>
>> Mirate las funciones FieldGet() y FieldPut()
>>
>> Saludos
>>
>> Jose A. Suarez
>
--
-
- Mensajes: 1310
- Registrado: Mié Sep 26, 2007 7:12 pm
Copiar TODO un registro
No los he usado pero tienes en la clase tDataset dos métodos que son
TDataSet:GetRecord
Devuelve un objeto TExStruct con toda la información del registro
actual e la tabla. Un objeto TExStruc es como una matriz pero con la
ventaja de que se puede acceder a cada uno de sus miembros por su nombre
en vez de por su ordinal. En este caso los nombres de los miembros
correspondes con los nombres de los campos de la tabla.
TDataSet:SaveFrom
Salva el actual registro con la información procedente de otro DataSet.
TDataSet origen de los datos u objeto TExStruct recuperado con el método
GetRecord
que te deberían de servir para hacer todo ello en un solo paso.
Salu2.
TDataSet:GetRecord
Devuelve un objeto TExStruct con toda la información del registro
actual e la tabla. Un objeto TExStruc es como una matriz pero con la
ventaja de que se puede acceder a cada uno de sus miembros por su nombre
en vez de por su ordinal. En este caso los nombres de los miembros
correspondes con los nombres de los campos de la tabla.
TDataSet:SaveFrom
Salva el actual registro con la información procedente de otro DataSet.
TDataSet origen de los datos u objeto TExStruct recuperado con el método
GetRecord
que te deberían de servir para hacer todo ello en un solo paso.
Salu2.