Power Builder - como borrar en forma cascada un registro

   
Vista:

como borrar en forma cascada un registro

Publicado por camilo (7 intervenciones) el 06/02/2015 15:39:25
buenos días amigos.
primero agradecer las respuestas y ayudas que puedan brindarme.
mi duda es:

tengo una tabla padre la cual contiene dos hijas, lo que quero realizar es, que al momento de elegir el registro padre lo elimine y al mismo tiempo me elimine los registros asociados al padre.
de ante mano gracias por la ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

como borrar en forma cascada un registro

Publicado por Leopoldo Taylhardat (690 intervenciones) el 06/02/2015 17:43:43
Saludos...
Eso lo puedes hacer con la base de datos declarando la integridad del "delete" en cascada (al igual que el update),
otra manera es creando un trigger de la base de datos en la tabla con evento "before delete" que te borre todos los registros de las tablas dependientes.
En power builder puedes crear en el datawindow un boton "eliminar" y declaras en el script el borrar las tablas dependientes antes de eliminar la tupla (renglón)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como borrar en forma cascada un registro

Publicado por camilo (7 intervenciones) el 06/02/2015 17:45:23
disculpa mi ignorancia podrías explicarme de mejor manera la ultima parte por favor te lo agradeceria
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como borrar en forma cascada un registro

Publicado por Leopoldo Taylhardat (690 intervenciones) el 07/02/2015 16:45:40
Saludos...
En el datawindow colocas un boton... suponiendo le pones el nombre "cb_eliminar"
si no lo sabes las líneas que tengan // son comentarios..

en el evento buttonclicked del datawindow colocas estas instrucciones...

//Si tienes varios botones definidos como ejemplo...
// "dwo.name" retorna el nombre del objeto que tocaste en el dw... en este caso el botón "cb_eliminar"
choose case dwo.name

case 'cb_eliminar'

// Aqui certificas que se quiera eliminar...

If messagebox("Atención!","Está seguro(a) de eliminar el registro",yesno!,2) = 1 then
// el "2" es para por defecto poner que NO... si es "1" por defecto es SI...
// aqui defines los valores que vas a definir para la eliminacion en las tablas dependientes...
// suponiendo que la columna se llame "codigo" y es numérica...
long ll_codigo
// aqui obtienes el valor del "codigo"
ll_codigo=this.getitemnumber(this.getrow(),'codigo')
// procedes a eliminar en las tablas dependientes
delete from tabla_1 where codigo=:ll-codigo;
delete from tabla_2 where codigo=:ll-codigo;
// commit hace que la BD elimine definitivamente la data...
commit;
// eliminas el renglón del datawindow...
this.deleterow(this.getrow())
this.update()
commit;
// cierras la certificación de la eliminación...(if messagebox....)
end if
// si hay otro(s) boton(es)...
case 'cb_boton1'
...
case 'cb_boton2'
...
end choose

------------------
voi la...

espero que te sirva...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar