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 24-03-2008
Roky Roky is offline
Miembro
 
Registrado: feb 2004
Ubicación: Guipuzcoa
Posts: 11
Poder: 0
Roky Va por buen camino
Question Capturar insert y post en DBGrid

Hola a todos,
Trabajo con Delphi7 y Firebird 2.0.

Estoy desarrollando una aplicación en tres capas. En la capa de la interfaz utilizo el DBGrid del BDE para visualizar algunas entidades. Por otra parte, la lógica del negocio la hago en la 2ª capa.

El caso es que cuando se guardan los cambios realizados sobre la entidad que se visualiza en el DBGrid, se debe hacer una llamada a la 2ª capa para validar los cambios. Sin embargo, ya sabeis que cambiando de fila en el DBGrid, los cambios se guardan directamente en el DataSet asociado.

Por tanto, lo que me gustaría saber es cómo capturar el evento de que el usuario cambie de fila de forma que pueda lanzar el código de validación de la 2ª capa y decidir si guardo o no los cambios en el dataSet.
Por extensión, también me interesa saber cuando el usuario, por cambiar de fila, provoca un insert; o cuándo pulsa ctrl+supr y elimina una fila.

Perdón por la extensión del mensaje y gracias.
Responder Con Cita
  #2  
Antiguo 24-03-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
pero eso lo puedes lograr con los eventos del dataset asociado.
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #3  
Antiguo 24-03-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola Roky, lo puedes hacer con los eventos de tu DataSet (BeforePost, BeforeInsert, BeforeDelete) y utilizar el procedimiento Abort para cancelar digamos el Post.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #4  
Antiguo 24-03-2008
Roky Roky is offline
Miembro
 
Registrado: feb 2004
Ubicación: Guipuzcoa
Posts: 11
Poder: 0
Roky Va por buen camino
¿Se puede evitar llegar al DataSet?

Precisamente quisiera evitar que el evento llegara al DataSet.
El DataSet reside en la capa de datos, la cual no entiende de la lógica de negocio (no sabe si los datos son correctos o no, ni qué hacer en consecuencia). Además, quisiera que el flujo de la información fuera lineal, de una capa a otra (interfaz --> negocio --> datos)

Haciendo lo que planteais, de alguna manera la información llegaría directamente a la capa de datos (al dataSet), sin pasar por la de negocio, aunque bien es cierto que con el abort podríamos "rebotar" la información hacia la capa de negocio para que la valide.

Lo que busco es el mismo efecto que pulsando un botón de "Guardar registro". El evento de este botón llamaría al método correspondiente de la capa de negocio y ésta decidiría si pasar la orden a la capa de datos para que hiciera efectivo el post.

Por tanto, insisto en la pregunta. ¿Podemos capturar el insert y post que que se provoca al cambiar de fila en un DBGrid, antes de que llegue al DataSet? (No sé si es posible lo que planteo)

De todas formas, gracias por la aportación.
Responder Con Cita
  #5  
Antiguo 24-03-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 20
keyboy Va por buen camino
El DBGrid, al igual que todos los controles llamados DB Aware, están diseñados para comunicarse directamente con el DataSet asociado. La forma en que tú quieres trabajar - muy válida, por cierto -implica en muchos casos tener que olvidarse de este tipo de controles.

Bye
Responder Con Cita
  #6  
Antiguo 24-03-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por keyboy Ver Mensaje
El DBGrid, al igual que todos los controles llamados DB Aware, están diseñados para comunicarse directamente con el DataSet asociado. La forma en que tú quieres trabajar - muy válida, por cierto -implica en muchos casos tener que olvidarse de este tipo de controles.

Bye
No estoy al tanto de la programacion multicapas, pero creo que para eso que comenta Keyboy se puede utilizar los ClientDatasets.
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
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
Refresco de DBGrid con post event fedelphi Conexión con bases de datos 4 07-11-2007 13:51:37
La fila del insert en DBGrid enecumene Conexión con bases de datos 3 06-10-2007 22:52:44
IBDatase Insert Post Edit Post ariefez Firebird e Interbase 4 12-10-2005 01:53:04
Capturar POST en IdHTTPServer. DarkByte Internet 1 12-12-2004 18:08:27
Texto en celda del DBGrid antes del Post andre Conexión con bases de datos 6 16-06-2004 17:04:36


La franja horaria es GMT +2. Ahora son las 20:09:13.


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