Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   Controlar que no se introduzcan nombres iguales en un campo (https://www.clubdelphi.com/foros/showthread.php?t=3008)

fortran 18-08-2003 09:57:07

Controlar que no se introduzcan nombres iguales en un campo
 
Hola a todos:

Estoy trabajando con WXP en D5 y con tablas Paradox. Lo que quiero conseguir es que para un campo el usuario no pueda meter 2 registros iguales. Se me ha ocurrido que en el evento OnExit de las celdas puedo poner un procedimiento que me chequee esto. Pero quisiera saber si hay alguna manera más sencilla de hacerlo.

:D

Gracias de antemano por vuestra atención

__cadetill 18-08-2003 10:03:57

Puedes crearte un indice de tipo Unique y dejar que sea la tabla la que controle eso. Tu sólo deverias controlar el OnPostError para saber si el usuario repite el nombre

fortran 18-08-2003 18:21:18

Suponía que sería algo así, pero... ¿como creo un indice de tipo unique?

__cadetill 18-08-2003 20:49:46

Dentro del DatabaseDesktop, al crear un indice secundario, veras que hay un check que pone "unique". Cliquealo y listo ;)

fortran 19-08-2003 16:20:05

He hecho lo que me has dicho y funciona perfectamente :) . En el evento OnPostError de la tabla saco un mensaje que me dice que no se puede repetir nombre y bla bla bla... pero justo después me sale el mensaje de error de Key violation, Index: IndiceNombreProducto. ¿Como lo puedo evitar?.

__cadetill 19-08-2003 16:33:14

como haces la captura de errores en el OnPostError? porque el error de keyviolation tb lo tendrias que poder capturar alli :confused:

fortran 19-08-2003 18:05:49

Creo que ya lo he solucionado. Explico lo que he hecho puesto que no estoy seguro de que sea lo correcto.

En el OnPostError saco el mensaje de que no se pueden introducir nombres de productos iguales, luego borro el contenido con TablaProductosNombreProducto.clear

y por último hago action := daAbort;

¿Es correcto? :p


La franja horaria es GMT +2. Ahora son las 13:19:13.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi