Me gustaría incorporar una opción de duplicado de registros
Que orden debo seguir con los métodos
Esto no parece funcionar
oNewDataSet := oDbfData:Clone()
oDbfData:New()
oDbfData:SaveFrom(oNewDataSet)
oDbfData:Update()
No se deberia crear un nuevo registro identico ?
Muchas Gracias
Juan José García
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.
Como duplicar un registro con el metodo oTDataSet:Clone()
- ignacio
- Site Admin
- Mensajes: 9463
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Como duplicar un registro con el metodo oTDataSet:Clone()
Juan Jose,
Me temo que no:
1) oDbfData:New()
Esto no tiene ningún sentido. Supongo que lo querias hacer es
oDbfData:AddNew()
2) oDbfData:SaveFrom() no esta pensado para ser utilizado en operaciones de
edición a través de AddNew | Edit.
Siguiendo tu esquema de crear dos datasets:
WITH OBJECT oDbfData
oNewDataSet := :Clone()
IF :Append()
:SaveFrom( oNewDataSet )
:RecUnlock()
ENDIF
oNewDataSet:End()
END WITH
No obstante a mi no me gusta este sisema ya que supone una apertura
innecesaria de la tabla dos veces y además tienes el problema adicional de
que en el nuevo DataSet es muy probable que no veas los cambios
inmediatamente.
Yo lo habría hecho utilizando el método GetRecord que te devuelve en un
objeto TExStruct los datos del registro actual y luego habría añadido con
dicha información. Es cierto que el método SaveFrom() no admite como
parametro más que un TDataSet, para ya está modificado para que admita
también un objeto TexStruct. Estará en la próxima actualización.
Un saludo,
"Juan José García" <correo@jjgsoft.biz> escribió en el mensaje
news:442aa9df$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Me gustaría incorporar una opción de duplicado de registros
> Que orden debo seguir con los métodos
>
> Esto no parece funcionar
>
> oNewDataSet := oDbfData:Clone()
> oDbfData:New()
> oDbfData:SaveFrom(oNewDataSet)
> oDbfData:Update()
>
> No se deberia crear un nuevo registro identico ?
>
> Muchas Gracias
>
> Juan José García
>
Me temo que no:
1) oDbfData:New()
Esto no tiene ningún sentido. Supongo que lo querias hacer es
oDbfData:AddNew()
2) oDbfData:SaveFrom() no esta pensado para ser utilizado en operaciones de
edición a través de AddNew | Edit.
Siguiendo tu esquema de crear dos datasets:
WITH OBJECT oDbfData
oNewDataSet := :Clone()
IF :Append()
:SaveFrom( oNewDataSet )
:RecUnlock()
ENDIF
oNewDataSet:End()
END WITH
No obstante a mi no me gusta este sisema ya que supone una apertura
innecesaria de la tabla dos veces y además tienes el problema adicional de
que en el nuevo DataSet es muy probable que no veas los cambios
inmediatamente.
Yo lo habría hecho utilizando el método GetRecord que te devuelve en un
objeto TExStruct los datos del registro actual y luego habría añadido con
dicha información. Es cierto que el método SaveFrom() no admite como
parametro más que un TDataSet, para ya está modificado para que admita
también un objeto TexStruct. Estará en la próxima actualización.
Un saludo,
"Juan José García" <correo@jjgsoft.biz> escribió en el mensaje
news:442aa9df$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Me gustaría incorporar una opción de duplicado de registros
> Que orden debo seguir con los métodos
>
> Esto no parece funcionar
>
> oNewDataSet := oDbfData:Clone()
> oDbfData:New()
> oDbfData:SaveFrom(oNewDataSet)
> oDbfData:Update()
>
> No se deberia crear un nuevo registro identico ?
>
> Muchas Gracias
>
> Juan José García
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Como duplicar un registro con el metodo oTDataSet:Clone()
Gracias por la aclaración .El ejemplo me sirció
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:442ab289$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Juan Jose,
>
> Me temo que no:
>
> 1) oDbfData:New()
>
> Esto no tiene ningún sentido. Supongo que lo querias hacer es
> oDbfData:AddNew()
>
> 2) oDbfData:SaveFrom() no esta pensado para ser utilizado en operaciones
> de edición a través de AddNew | Edit.
>
> Siguiendo tu esquema de crear dos datasets:
>
> WITH OBJECT oDbfData
> oNewDataSet := :Clone()
> IF :Append()
> :SaveFrom( oNewDataSet )
> :RecUnlock()
> ENDIF
> oNewDataSet:End()
> END WITH
>
> No obstante a mi no me gusta este sisema ya que supone una apertura
> innecesaria de la tabla dos veces y además tienes el problema adicional de
> que en el nuevo DataSet es muy probable que no veas los cambios
> inmediatamente.
>
> Yo lo habría hecho utilizando el método GetRecord que te devuelve en un
> objeto TExStruct los datos del registro actual y luego habría añadido con
> dicha información. Es cierto que el método SaveFrom() no admite como
> parametro más que un TDataSet, para ya está modificado para que admita
> también un objeto TexStruct. Estará en la próxima actualización.
>
> Un saludo,
>
> "Juan José García" <correo@jjgsoft.biz> escribió en el mensaje
> news:442aa9df$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Me gustaría incorporar una opción de duplicado de registros
>> Que orden debo seguir con los métodos
>>
>> Esto no parece funcionar
>>
>> oNewDataSet := oDbfData:Clone()
>> oDbfData:New()
>> oDbfData:SaveFrom(oNewDataSet)
>> oDbfData:Update()
>>
>> No se deberia crear un nuevo registro identico ?
>>
>> Muchas Gracias
>>
>> Juan José García
>>
>
>
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:442ab289$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Juan Jose,
>
> Me temo que no:
>
> 1) oDbfData:New()
>
> Esto no tiene ningún sentido. Supongo que lo querias hacer es
> oDbfData:AddNew()
>
> 2) oDbfData:SaveFrom() no esta pensado para ser utilizado en operaciones
> de edición a través de AddNew | Edit.
>
> Siguiendo tu esquema de crear dos datasets:
>
> WITH OBJECT oDbfData
> oNewDataSet := :Clone()
> IF :Append()
> :SaveFrom( oNewDataSet )
> :RecUnlock()
> ENDIF
> oNewDataSet:End()
> END WITH
>
> No obstante a mi no me gusta este sisema ya que supone una apertura
> innecesaria de la tabla dos veces y además tienes el problema adicional de
> que en el nuevo DataSet es muy probable que no veas los cambios
> inmediatamente.
>
> Yo lo habría hecho utilizando el método GetRecord que te devuelve en un
> objeto TExStruct los datos del registro actual y luego habría añadido con
> dicha información. Es cierto que el método SaveFrom() no admite como
> parametro más que un TDataSet, para ya está modificado para que admita
> también un objeto TexStruct. Estará en la próxima actualización.
>
> Un saludo,
>
> "Juan José García" <correo@jjgsoft.biz> escribió en el mensaje
> news:442aa9df$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Me gustaría incorporar una opción de duplicado de registros
>> Que orden debo seguir con los métodos
>>
>> Esto no parece funcionar
>>
>> oNewDataSet := oDbfData:Clone()
>> oDbfData:New()
>> oDbfData:SaveFrom(oNewDataSet)
>> oDbfData:Update()
>>
>> No se deberia crear un nuevo registro identico ?
>>
>> Muchas Gracias
>>
>> Juan José García
>>
>
>