PDA

Ver la Versión Completa : nuevo registro en tabla de sqlserver


davidgaldo
23-09-2004, 16:55:12
Al insertar un nuevo registro en una tabla como puedo controlar antes de insertarlo de que no existe ya uno igual para no duplicarlo??

Investment
23-09-2004, 17:09:08
Pues haciendo una select por los campos clave de la tabla con los valores que vas a insertar.

O controlando el error en un try/except/end

__hector
23-09-2004, 21:30:22
... o creando un indice (o constraint) de no duplicidad en la base de datos (UNIQUE, por combinacion de campos si es necesario), intentar insertarlo, y meter el codigo en un bloque try/except.

Si no logra hacer la operacion, verificas que el error se deriva del intento de insertar un duplicado, y le avisas (si quieres) al usuario. Te evitas asi el select ;)

EDITADO
No vi en el post anterior la parte del "o try/except", asi que creo que mi sugerencia puede ser solo una confirmacion de la anterior

davidgaldo
24-09-2004, 08:27:45
me puedes explicar eso con un poco más de detalle, gracias.

__hector
24-09-2004, 14:37:38
Explicar que? Crear el indice? Desde el Enterprise manager, clic derecho sobre la tabla, design table, Table properties, indexes/keys, creas un nuevo indice, seleccionas los campos que no pueden duplicarse, y guardas.

La parte de delphi:


try
... codigo para insertar el registro
except
... mostrar la excepcion... no se de que clase es la excepcion que se generara, asi que tendras que probar
end;


Puedes ver en la ayuda de delphi si necesitas mas info.