Ver Mensaje Individual
  #2  
Antiguo 05-01-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola,

Siendo que eres nuevo en Delphi, quizá lo primero que debas saber es que todos los controles DBAware (DBGrid, DBEdit, DBNavigator, etc.) son tan sólo una interfaz entre el usuario y el DataSet (Table, Query, etc.) al que estén conectados. Esto quiere decir que sirven "sólo" para presentar datos y enviar comandos al DataSet. Pero toda el control de acceso a los datos está en los DataSets.

Por ejemplo, cuando oprimes el botón "Next" del DBNavigator, simplemente estás mandando el comando Next al DataSet asociado. Cuando oprimes el botón "Insert" simplemente mandas el comando Insert al DataSet para que agregue un registro en blanco, y lo mismo cuando oprimes el botón "Post".

Entonces, no es en el DBNavigator donde debes controlar cosas como la duplicación de registros sino en el mismo DataSet mediante los eventos apropiados.

Por ejemplo, el DataSet tiene el evento OnBeforePost para hacer validaciones antes de guardar los datos en la base. También tiene el evento OnPostError en donde controlas los posibles errores generados por el motor de la base de datos al insertar o guardar un registro.

Tanbién está el evento OnBeforeDelete, que se genera cuando se usa el comando Delete del DataSet (que es el comando que el DBNavigator envia al DataSet cuando oprimes el botón "Delete"). En este evento es donde puedes suprimir el mensaje de confirmación y poner el tuyo propio.

Te recomiendo que busques en la ayuda de Delphi acerca de éstos y otros eventos de los DataSets.

// Saludos
Responder Con Cita