ASP - guardar algo en base de datos

 
Vista:

guardar algo en base de datos

Publicado por MATIAS (46 intervenciones) el 10/07/2003 03:05:47
hola.....sin entrar en detalles....a la hora de guardar un nuevo registro en la base voy a usar la fecha y la hora como clave principal......lo que quiero prevenir es que se de la remota casualidad de que 2 personas guarden un registro al mismo tiempo....
muy por arriba estoy enterado del uso de "cursor" y "lock" o algo asi, que si no me equivoco estan diseñados para eso....alguien me puede orientar?
la idea es el campo clave sea algo asi:
09072003214238 (la fecha y la hora todo junto--- 09/07/2003 21:42:38)
y que no haya 2 iguales
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:guardar algo en base de datos

Publicado por Esteban (508 intervenciones) el 10/07/2003 05:15:01
Eso que haces es una forma de timestamp, o sea, según una unidad de tiempo colocas un valor, ahora, que tal si inmediatamente antes de guardar en la BD, revisas un valor secuencial, de forma que por más seguidas que sean las transacciones por la diferencia de centésimas de segundo se creen dos registros con secuencial diferente.

Un esquema puede ser este:
funcion guardar
abro la bd
consulto secuencial
guardo registro con nuevo secuencial
fin de funcion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

a ver si entendi

Publicado por MATIAS (46 intervenciones) el 10/07/2003 16:40:38
lo que me estas diciendo es que el campo clave sea numerico.....y que al momento de guardar le sume 1 al ultimo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:a ver si entendi

Publicado por Esteban (508 intervenciones) el 13/07/2003 00:36:55
Exactamente, pueden ser dos campos distintos, pero uno debe llevar un tipo de contador para asegurar que los datos sean únicos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

te explico algo mas

Publicado por MATIAS (46 intervenciones) el 13/07/2003 00:58:17
claro....pero te explico porque no quiero usar un contador autonumerico....yo estoy diseñando un sistema en donde un usuario puede ver una pagina restringida.....por ejemplo pagina.asp?Cod=1234
entonces yo leo 1234 y si corresponde a algo que tengo en la base le muestro algo.....el problema es que yo tengo que impedir que alguien venga y ponga 1233 (el anterior) y pueda acceder a una pagina restringida de otro usuario......entonces poniendo la fecha y la hora es muy improbable que alguien entre en la pagina de otro.......pero tengo que contemplar que se de la situacion en donde dos usuarios guarden un nuevo registro al mismo tiempo
sabes como impedir eso?!?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:te explico algo mas

Publicado por Esteban (508 intervenciones) el 13/07/2003 19:33:30
Yo tengo una forma más exacta, combina los datos get con post, o sea, envía información importante por un post, el cual no se muestra como parte de la cadena de URL y por get el número que desea.

Ojo que yo nunca pose de campos autonuméricos, solo puse que coloques una instrucción que incremente antes de guardar, tan simple como variable = variable +1

Exactamente no sé como lo estás guardando, si con instrucciones SQL o qué, pero puedes consultar el número máximo y sumar uno al campo secuencial, esto inmediatamente antes de aplicar el insert.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar