Control de registros duplicados Vb6 SQL

¿Cómo estas? Espero que tengas tiempo como para sacarme una duda.
Tengo un Form (Vb6) con el que hago un alta de "Carreras". Hasta ahí todo bien, en la tabla de "Carreras" que tengo en SQL, me guarda la clave principal (autonumérica) el Nombre de la carrera y un par de campos más.
Ahora mi problema es que no tengo bien claro como lograr que el "Nombre de la Carrera" no se me duplique, que salga un Mensaje de advertencia que ya esta en la Base de Datos.
¿Tengo qué Abrir el recordset, después hacer un Find y si esta mi dato que mande un mensaje? ¿O debería abrir el recordset con un Where =Nombre de la carrera para saber si ya esta?.
¿Podrías orientarme con el método más eficiente? Desde ya muchas gracias.
Por las dudas utilizo visual basic 6 (ADO) y la base esta en SQL server 2005.

1 respuesta

Respuesta
1
Son dos cosas las que puedes hacer:
1. Grabar el nombre de la carrera en mayúsculas, para cuando haces la búsqueda sea acorde todas las letras
2. Crea un indice Único a la columna del nombre de Carrera, así cuando intentes agregar un registro con un nombre de carrera que ya existe SQL te da una excepción de llave duplicada.
Hola muchas gracias por tu respuesta, Voy a investigar sobre el indice único (soy medio novato).
Vos sabes que la opción 1 me dejo mareado, no entendí nada de lo de Mayúsculas, ¿podrías tratar de explicarme un poco?.
Lo que no quiero por ejemplo es que me ingrese dos veces matemática por más que el Id_materia sea diferente, los nombres de la materias en la base de datos están en minúsculas.
¿Otra cosita el Indice Único lo creo desde SQL? O mediante código en Visual Basic (es lo que preferiría, aprender un código que no me permita cargar un nombre si ya esta en la base)
Te agradezco nuevamente que hayas respondido.
Saludos
Conviertes a Mayúscula lo que escriban en el campo de nombre materia, cuando vayas a grabar buscas en esa tabla por el campo de nombre si lo encuentras no lo dejas crear.
El indice único se crea por SQL

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas