FoxPro/Visual FoxPro - red: confirmacion al agregar registros

 
Vista:

red: confirmacion al agregar registros

Publicado por marcos (190 intervenciones) el 29/04/2004 04:18:47
hola a todos...tengo una consulta con respecto a la insercion y confirmacion de registros y cambios en una aplicacion en red

el tema es el sgte: tengo un sistema en red, donde varios usuarios acceden a un formulario de carga de datos y registran nuevos registros en forma constante (hablamos de unos 10000 registros al mes)

el metodo de prog. que utilizo es que todos mis datos estan sobre variables y una vez todo cargado el formulario, en el boton grabar calculo el ultimo numero del id de mi tabla y le sumo 1, e inserto los datos en la tabla y luego lo confirmo con tableupdate(.t.)...

mi problema esta cuando dos usuarios le dan al mismo tiempo clic en grabar... a los usuarios les da el mismo numero de id!!! lo duplica, por lo visto no confirma los datos!!

Como hago para confirmar los cambios al momento de insertar los datos...por favor si tienen alguna solucion, es URGENTE!!! gracias
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:red: confirmacion al agregar registros

Publicado por Roman Suazo (2723 intervenciones) el 29/04/2004 05:11:42
Depende de como calcules id para cada registro nuevo.
Generalmente esa rutina para crear ids consta mas o menos de estos elementos:

Una tabla que consta de dos campos: nombre de tablas (las tablas que ejecutaran esta rutina y que necesitan un id unico por cada registro) y el valor del ultimo id (dos campo en total).

Cuando quieras crea el id, llamas a la rutina, a esta le mandas el nombre de la tabla a la cual se le agregara el nuenvo id, en la rutina
buscas el registro que corresponde a la tabla, BLOQUEAS el registro
(RLOCK(), con el registro bloqueado los otros usuarios no podran usar
el mismo id, y tendran que esperar hasta que el registro este desbloqueado para crear su propio id, este bloqueo sera rapidisimo)
aumentas el valor del id en 1, y devuelves el nuevo valor, el cual era utilizado en el insert. Con esto no habria problemas.

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