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
Responder
Israel Solis
Mensajes: 155
Registrado: Mié Nov 03, 2004 12:42 pm
Ubicación: Cancún, México
Contactar:

oDataSet:AddUserVar() uso por registro?

Mensaje por Israel Solis »

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
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: oDataSet:AddUserVar() uso por registro?

Mensaje por ignacio »

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]
https://www.xailer.com
Israel Solis
Mensajes: 155
Registrado: Mié Nov 03, 2004 12:42 pm
Ubicación: Cancún, México
Contactar:

Re: oDataSet:AddUserVar() uso por registro?

Mensaje por Israel Solis »

Ignacio:

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

Israel
Responder