FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
cancelar post??
Hola a todos, tengo un tquery en Delphi 5 Tablas Paradox, antes de modificar un registro quiero consultar al usuario si realmente quiere modificarlo he hecho lo siguiente, en el evento beforepost del query:
procedure TF_OPTIMONEY.QRY_CLIENTES1BeforePost(DataSet: TDataSet); begin IF MESSAGEDLG ('¿Quiere cambiar los datos?',mtwarning,[mbYes,mbNo],0)=mrno then QRY_CLIENTES1.cancel; end; El tema es que cuando le doy no me aparece el mensaje "keyviolation", que estoy haciendo mal? |
#2
|
||||
|
||||
En lugar de usar el método cancel, elevá una excepción. Puede ser la excepción "silenciosa" EAbort, y podes elevarla llamando al procedure Abort.
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
|||
|
|||
Gracias por tu ayuda, ya probé con abort, pero no me sale del registro, la unica forma de salir de el es grabando los datos
|
#4
|
||||
|
||||
¿Qué significa "no me sale del registro"?
El método que te propone jachguate debe servir y es justo lo que se indica en la descripción del evento en la ayuda de Delphi. // Saludos |
#5
|
||||
|
||||
Lo que te dicen Jachguate y Román te tiene que funcionar, también puedes probar:
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#6
|
|||
|
|||
lo que quiero decir es que hago esto:
procedure TF_OPTIMONEY.QRY_CLIENTES1BeforePost(DataSet: TDataSet); begin IF MESSAGEDLG ('¿Quiere cambiar los datos?',mtwarning,[mbYes,mbNo],0)=mrno then abort; end; estoy en un registro y cambio un campo de dicho registro, cuando hago tabla.next me aparece el mensaje y le doy NO y vuelve al registro en el que estaba, pero hago nuevamente tabla.next y me vuelve a aparecer el mensaje y le doy NO y me vuelve al registro y le doy tabla.next y.... no puedo salir del mismo registro si modifico un campo y presiono NO. Esta algo entreverado pero es lo que me pasa, para mi tiene que ser con un cancel para que me cancele la modificacion del campo y vuelva a dejarlo como estaba antes de que el usuario cambiara el campo. Aclaro o oscurezco???? |
#7
|
||||
|
||||
Pues acabo de hacer una prueba exactamente con tú código pero he descubierto que para tu propósito debe de utilizar el evento BeforeInsert:
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#8
|
|||
|
|||
es posible que en beforeinsert funcione, pero solo alertara en el caso de que el usuario inserte un nuevo registro, pero lo que quiero hacer es que si el usuario cambia algun campo de un determinado registro, al querer cambiarse de registro lo alerte y le pregunte si quiere grabar o no los datos.
|
#9
|
||||
|
||||
Cita:
En las pruebas que acabo de hacer hay dos formas de solucionarlo y básicamente es juntar lo dicho por jachguate con lo que ya había intentado elbetete: Primera forma:
Segunda forma:
y rodear la llamada a Next con:
Pero creo que la prmera forma es más correcta. // Saludos |
#10
|
|||
|
|||
gracias roman, me funciono con cancel y luego abort, un abrazo
|
|
|
|