Delphi - Problema

 
Vista:

Problema

Publicado por Judit (45 intervenciones) el 26/04/2006 16:14:13
Buenos días!!

Estoy realizando un formulario en delphi y los campos que estan en el formulario son los directos de la tabla, mi problema surge cuando quiero grabar un registro nuevo, si el codigo que escriben ya existe me sale el error de delphi de que se esta violando el primary key, lo que quisiera es que cuando le de a grabar si ya ese codigo existe que me de un mensaje creado por mi misma, lo intente utilizando un locate pero cada vez que insertaba un registro me decia que ya ese codigo existe, me imagino que es porque se estan grabando los datos en la tabla desde que comienzas a escribir en los campos.

si alguien puede ayudarme

gracias anticipadas.
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

RE:Problema

Publicado por Delfino (1216 intervenciones) el 26/04/2006 20:34:25
Q base de datos usas???
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

RE:Problema

Publicado por Judit (45 intervenciones) el 26/04/2006 20:37:01
la base de datos que uso es Access 2003 conectada mediante un ODBC
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

RE:Problema

Publicado por Delfino (1216 intervenciones) el 27/04/2006 07:30:48
Busca en el foro sobre la palabra BDE errors y veras como se hace..
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

RE:Problema

Publicado por Sebastian Corradi (25 intervenciones) el 28/04/2006 19:38:13
hace una cosa:
andá al componente que corresponde al campo clave de la tabla ( supongo que debe ser de tipo DBEdit o alguna clase descendiente ).
en el evento "OnExit" agrega las validaciones que te parezca tal y como venias haciendo pero acordat de hacerlo antes de la linea "inherited", Ya que esa linea es la que efectiviza la actualizacion en el registro de la tabla.
de esta manera la validacion la puedes hacer no en la grabacion, sino en la edicion, es decir: cuando estan editando el registro y salen del componente ( apretando la tecla tab o con Enter, o con lo que sea...).

NOTA: CUIDADO CUANDO HACES EL LOCATE
QUIZAS TU PROBLEMA PROVENGA DE AHÍ
cuado haces un locate sobre un dataset ( no se si estas trabajando con datasets) para hacer el locate internamente se recorre el mismo, y cuando abandonas el registro que estas editando previamente se graba el mismo en el dataset, y luego tendras problemas para volverlo a encontrar ( si hay claves duplicadas ), e innumerables posibles problemas mas.
lo que puedes hacer es algo para diferenciar el origen sobre el cual estas escribiendo del origen sobre el cual realizas la busqueda ( crear una estuctua identica y trabaja sobre esa y cuando pasa las validaciones... entonces copiar todo al destino )
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

RE:Problema

Publicado por Judit (45 intervenciones) el 28/04/2006 19:59:53
Gracias a todos por su ayuda
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