Estoy haciendo un programa de base de datos con builder y desearía saber cual es el código para borrar un resistro de una tabla que esta en el DBGrid. Atentamente Damy
1 respuesta
Respuesta de Antonio Garcia
1
1
Antonio Garcia, clipper todas sus versiones (manejo total) power builder todas...
Esto es relativamente sencillo Quiero pensar que cuando te refieres a el dbgrid estas hablando de un datawindow en forma de grid El datawindow control posee una serie de funciones que efectúan estas operaciones, cada una de ellas actúa sobre los datos que se encuentran cargados en dicho control, y luego el usuario deberá decidir el momento de la actualización de estos. Por ejemplo: Para poder borrar un registro 1ero. Seleccionar visualmente el registro 2do. Utilizar la funcion deleterow(<row>), esta funcion borra el registro del datawindow, (mas bien lo cambia de buffer), pero aun no de la tabla 3ero. para acentar la operacion utilizas la funcion update() Esta funcion devuelve un valor numerico: 1 -> si todo fue correctamente procesado -1 -> cuando ocurre un error. En función de este resultado tu defines cuando efectuar el COMMIT, o el ROLLBACK, Un ejemplo En un botón que efectúe el borrado de un registro podría encontrar un script más o menos así: INTEGER li_result INTEGER li_row STRING ls_error li_row = PARENT.dw_1.GetRow() IF (li_row > 0) THEN IF (MESSAGE('BORRAR RESITRO', 'Esta seguro/a de borrar este registro', Question!, YesNo!, 2) = 1) THEN li_result = PARENT.dw_1.DeleteRow(li_row) IF (li_result = 1) THEN li_result = PARENT.dw_1.Update() IF (li_result > 0) THEN COMMIT USING SQLCA; ELSE ls_error = SQLCA.SQLErrText ROLLBACK USING SQLCA; MESSAGEBOX('ERROR, ls_error) END IF END IF END IF Finalizando: Así como estas funciones descritas anteriormente, se encuentran otras más que puedes consultar en el help de power builder, estas sirven para, insertar un nuevo registro, filtrar, retraer, cambiar el status del registro. Las cuales pueden ser invocadas dentro del propio datawindow, por medio de un botón, o afuera del datawindow control por medio de commandbuttons los cuales ejecuten las mismas operaciones. Espero esto pueda servir para resolver tu problema saludos agdsys