Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

asegurar un registro

Estas en el tema de asegurar un registro en el foro de Bases de Datos General en Foros del Web. bueno... espero que el titulosea el correcto, pero les cuento un poco lo que estoy haciendo y cual es mi duda: estoy realizando para una ...
  #1 (permalink)  
Antiguo 19/08/2005, 13:14
Avatar de biffly  
Fecha de Ingreso: junio-2005
Mensajes: 315
Antigüedad: 19 años, 5 meses
Puntos: 0
asegurar un registro

bueno... espero que el titulosea el correcto, pero les cuento un poco lo que estoy haciendo y cual es mi duda: estoy realizando para una intranet un sistena re registracion contable, en una de las operaciones inserto en una tabla un registro que inmdiatamente consulto(buscando el ultimo registro de dicha tabla) este registro es mi ASIENTO, despues en otra tabla inserto una serie de registros mas, utilizando el numero de ASIENTO que obtube anteriormente, bien mi duda esta compueta por dos artes,

1º como puedo asegurarme de obtener el registro que realmente insrte en el primer paso, es decir ya que es una aplicacion para una intranet y va a ser utilizada por muchos usuarios al mismo tiempo existe el riesgo de que otro usuario este realizando la misma operacion y obtener el registro que inserto el otro usuario generando asi un ASIENTO q' no es real.

2º que ocurre si despues de haber generado el ASIENTO y haber obtenido el numero del mismo mientras estoy realizando alguno de los demas insert's ocurre algun problema, la informacion queda incompleta, como puedo acegurarme de que esto no ocurra

espero haber sido claro en mi consulta, gracias

PD: utiliso ASP y SQLSERVER
__________________
Sigue al indio desnudo... Pero con precaución, atendiendo las señales de transito y comentando todo lo que haces.
REM Hay que encontrar el camino de regreso y no siempre es facil....
  #2 (permalink)  
Antiguo 19/08/2005, 14:26
Avatar de claray  
Fecha de Ingreso: agosto-2004
Ubicación: ahora... en Caracas
Mensajes: 345
Antigüedad: 20 años, 3 meses
Puntos: 0
Hola,

Bueno el asunto no estan complejo. Lo que tienes que hacer (imagino es asi) es tener un campo autoincremental en la tabla, de manera que se asigne un valor distinto a cada registro. Normalmente ese numero es la clave principal del registro.

Para recueperar ese valor asignado al registro, debes ejecutar EN LA MISMA SESION con el SQL Server, es decir, la manera mas sencilla de hacerlo es insertar un "SELECT @@IDENTITY as codigo" (para mayor informacion te recomiendo la siguiente pagina:

http://www.kamath.com/tutorials/tut007_identity.asp

respecto al segundo tema, utiliza transacciones "BEGIN TRANSACTION" y "COMMIT" o "ROLLBACK"... hay suficiente información en todas partes respecto al uso de estas por lo que te lo dejo...

saludos, y sueeeerte
__________________
:pirata: El arte de desarrollar es dejar que los otros lo hagan
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:16.