Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-06-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
Evento Provider.BeforeApplyUpdates

Buenas, estube leyendo la ayuda que tiene la version 2010 de delphi y en el evento del BeforeApplyUpdates del ClientDataSet trate el parametro OwnerData de tipo OlveVariant donde se puede codificar la información personalizada. Luego del lado servidor, el proveedor puede responder o modificar esa información antes de aplicar las actualizaciones.
¿Alguien de ustedes ha utilizado esto?

Código Delphi [-]
procedure TDSServerModuleABMClientes.DataSetProviderClientesBeforeApplyUpdates(
  Sender: TObject; var OwnerData: OleVariant);
begin
 //...
end;

Slds.
Responder Con Cita
  #2  
Antiguo 01-06-2012
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
¿Como qué información piensas pasar?
Responder Con Cita
  #3  
Antiguo 01-06-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
Cita:
Empezado por Al González Ver Mensaje
¿Como qué información piensas pasar?
datos de tipo TField.. Sabes como o para que se utiliza generalmente este parámetro?
La idea mi es hace una función de control de los campos obligatorios.
Responder Con Cita
  #4  
Antiguo 01-06-2012
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Es un parámetro Variant, por lo que puede almacenar cualquier cosa. Pero evita pasar punteros u objetos si el conjunto de datos cliente y el objeto proveedor no comparten el mismo espacio de memoria (como cuando son ejecutables distintos).

Se utiliza raramente. Yo lo usé en cierta ocasión para identificar al conjunto de datos cliente ante el proveedor, pues tenía varios conectados al mismo TDataSetProvider.

Puede ser empleado para señalar algún parámetro o condición especial que le sirva al proveedor antes y después de enviar los cambios a la base de datos, como "esto pásalo sin validarlo, porque viene de un proceso automatizado", "anota estos cambios en la bitácora", "envía notificación por correo electrónico", "no elimines estos registros físicamente, márcalos como cancelados", "solicita autorización", "de regreso dime cuántos pedidos hay pendientes de atención", y un sinfín de usos.

Para validar la obligatoriedad de los campos, generalmente dejo que sea el servidor de base de datos quien lo haga (pongo en False la propiedad Required de los campos TField), manejando la excepción con el evento OnReconcileError y mostrando un mensaje claro para el usuario. Nunca se sabe cuándo activaremos o desactivaremos el atributo "Not Null" de un campo; en este sentido, la base de datos manda.
Responder Con Cita
  #5  
Antiguo 01-06-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
Cita:
Empezado por Al González Ver Mensaje
Es un parámetro Variant, por lo que puede almacenar cualquier cosa. Pero evita pasar punteros u objetos si el conjunto de datos cliente y el objeto proveedor no comparten el mismo espacio de memoria (como cuando son ejecutables distintos).

Se utiliza raramente. Yo lo usé en cierta ocasión para identificar al conjunto de datos cliente ante el proveedor, pues tenía varios conectados al mismo TDataSetProvider.

Puede ser empleado para señalar algún parámetro o condición especial que le sirva al proveedor antes y después de enviar los cambios a la base de datos, como "esto pásalo sin validarlo, porque viene de un proceso automatizado", "anota estos cambios en la bitácora", "envía notificación por correo electrónico", "no elimines estos registros físicamente, márcalos como cancelados", "solicita autorización", "de regreso dime cuántos pedidos hay pendientes de atención", y un sinfín de usos.

Para validar la obligatoriedad de los campos, generalmente dejo que sea el servidor de base de datos quien lo haga (pongo en False la propiedad Required de los campos TField), manejando la excepción con el evento OnReconcileError y mostrando un mensaje claro para el usuario. Nunca se sabe cuándo activaremos o desactivaremos el atributo "Not Null" de un campo; en este sentido, la base de datos manda.
Muchas gracias Al Gonzalez, voy a analizar de cambiar el plan. ya que veo que este parámetro se utiliza mas como una bandera que para pasar datos.

Slds.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con ClientDataset y provider Fita Firebird e Interbase 3 23-11-2011 18:42:14
Propiedades provider cadina Providers 1 25-06-2008 21:31:14
membership provider felixgo .NET 5 05-12-2005 14:09:16
Ayuda con Diferencia en el Provider de COM mrojass Providers 0 11-06-2005 01:44:23
oracle provider pepe2000 Oracle 5 05-04-2004 18:15:06


La franja horaria es GMT +2. Ahora son las 20:12:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi