Si quieres verificar la existencia de una clave
antes de la inserción, quizá lo más adecuado sería una consulta SQL del estilo:
Código SQL
[-]
select count(clave) from tabla
where clave = clave_a_buscar
y examinar si el valor del registro que te regresa es mayor que cero. Por otra parte, quizá quieras considerar que el error que obtienes no es "malo", a fin de cuentas es otra manera de verificar lo mismo, sólo que lo hace
a posteriori.
Como lo propones es:
Código:
IF ExisteRegistro THEN
MuestraError
ELSE
InsertaRegistro
De la otra forma es:
Código:
InsertaRegistro;
IF RegistroDuplicado THEN
MuestraError;
O sea, virtualmente es lo mismo, lo que cambia es el momento en que se controla el error. Además, en este caso, quien hace la verificación es el servidor, y normalmente será más eficiente.
// Saludos