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.

oDataSet:AddUserVar() uso por registro?

Foro de Xailer profesional en español
Israel Solis
Posts: 142
Joined: Wed Nov 03, 2004 12:42 pm
Location: Cancún, México
Contact:

oDataSet:AddUserVar() uso por registro?

Postby Israel Solis » Thu Sep 03, 2020 5:00 pm

Chico, equipo Xailer..

duda sobre oDataSet:AddUserVar() sirve para "agregar" un campo Virtual y éste se comporta como un campo mas del Dataset? es decir, almacena valores por cada registro?

GRACIAS !!
Saludos :D

Israel
User avatar
ignacio
Site Admin
Posts: 8693
Joined: Mon Apr 06, 2015 8:00 pm
Location: Madrid, Spain
Contact:

Re: oDataSet:AddUserVar() uso por registro?

Postby ignacio » Thu Sep 03, 2020 5:13 pm

Buenos días,


oDataset:AddUserVar() añade un campo virtual a la tabla que simplemente ejecuta un code-block. Esto es todo. No incluye ninguna persistencia de ningún tipo que es lo que sugiere. Lo más sencillo es realizar una SELECT con un campo inventado. Algo así:

SELECT * , 0 as MiCampo FROM CLIENTES

oDataset:MiCampo siempre la va a devolver el valor 0. Obviamente MiCampo no es un campo real de la tabla y cualquier intento de asignarle un valor provocará un error. No obstante, la solución es sencilla utilice un TMemDataset que si podrá editar y de paso incluya un campo más para indicar que el registro ha sido modificado. Algo así:

SELECT * , 0 as MiCampo, 0 as MiEstado FROM CLIENTES

Cada vez que edite el registro ponga el campo MiEstado a 1, si lo borra a 2 y si añade 3. El resto del código es coser y cantar. Recorrease el TMemDataset y si MiEstado es distinto de cero haga las modificaciones pertinente. Échele un vistazo a los métodos oDataset:InitFrom() y oDataset:SaveFrom()

Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
Israel Solis
Posts: 142
Joined: Wed Nov 03, 2004 12:42 pm
Location: Cancún, México
Contact:

Re: oDataSet:AddUserVar() uso por registro?

Postby Israel Solis » Thu Sep 03, 2020 9:24 pm

Ignacio:

Muchas gracias por la aclaración y el TIP, lo probare de esa manera
Saludos :D

Israel

Return to “Spanish”