Programación en castellano
Inicio > Foros > SQL Server > varios usuarios intentan dar de alta un mismo registro
-Foros de debate

SQL Server
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

varios usuarios intentan dar de alta un mismo registro
Enviado por eis el día 28 de noviembre de 2005

¿Como puedo controlar que no me de error cuando dos usuarios intentan introducir un mismo registro en una misma tabla?. Los registros tienen una clave unica que es el codigo y las sentencia de insert se hacen a partir de codigo de vb .net.

 
Re: varios usuarios intentan dar de alta un mismo registro
Enviado por monky el día 29 de noviembre de 2005

Para trabajar con este tipo de operaciones debes usar el tratamiento de transacciones; en donde, en cada transaccion puedas manejar mediante programacionn este tipo de situaciones.

Lo mas sano es usar procedimientos almacenados en donde indiques algo asi

BEGIN TRAN
Haces el select para seleccionar el codigo + 1 (si es que tu clave no es identity; si es identity solo haces el select de cualquier columna) con la opcion HOLDLOCK (esto se hace para mentener bloqueada la tabla mientras usas la transaccion)
Luego insertas la fila
si la operacion esta OK
COMMIT TRAN
sino
ROLLBACK TRAN
END

Al final el sistema solo desbloqueará la tabla y te da la seguridad que no se ingresaran los mismos registros en tu tabla

 
Re: Re: varios usuarios intentan dar de alta un mismo registro
Enviado por pablo el día 9 de diciembre de 2005

la insersion de dos registros iguales la cuida el propio sqlserver (bah, cualquier motor de bd que se precie de serlo), si has usado tablas con clave primaria. (que es lo correcto al crear una tabla)
el propio motor no permite la insersion de dos registros con la misma clave primaria (por ejemplo, el numero de legajo de un alumno, que es unico)

al intentar insertar un registro duplicado el una tabla, el motor te va a tirar un error de registro no insertado por restrccion de clave primaria duplicada (identidad), lo que tenes que hacer, es controlar ese error en tu programa

nos vemos!

 



Tienda
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad
Mantenida por: Claudio y Dani.

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: jugar gratis | amor | navidad 2009 | registro de dominios | servidores dedicados
más internet: comprar | gratis | posicionamiento en buscadores | decoración libre | gifs animados