Clipper/FiveWin - Grabar en Red

 
Vista:

Grabar en Red

Publicado por Gabriel Martin (41 intervenciones) el 19/02/2009 16:09:14
Muy buenas a todos:

En un programa en red, tengo la función con el fin de crear una numeración correlativa en el número de asientos contables. Esta funcíon el llamada justo en el momento de grabar el asiento:

FUNCTION ObtenAsiento()

Bloquea("Empresa")
aSient[1]:=Empresa->ASI+1
Empresa->ASI:=aSient[1]
Empresa->(DBUnlock())

RETURN (.T.)

donde Bloquea es:

FUNCTION Bloquea(cDbase)
DO WHILE .t.
IF (cDbase)->(RLOCK())
EXIT
ELSE
MsgAlert("Fichero Bloqueado por otro Usuario")
LOOP
ENDIF
ENDDO

RETURN (NIL)

El caso está en que trabanjando desde un ordenador, no hay problema, la variable aSient[1], se va sumando. No así cuando al mismo tiempo corren la misma aplicación en dos ordenadores diferentes.

Probé un Empresa->(DBCommit()), despues de Empresa->ASI:=aSient[1], pero me deja el fichero bloqueado, obligando a cerrar la aplicacion por completo.

Saludos y muchas gracias
Gabriel Martin. Mataró Spain
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:Grabar en Red

Publicado por Ramon Paredes (47 intervenciones) el 28/02/2009 03:40:38
Gabriel,

Trabajando simultaneamente 2 o mas equipos con ese metodo te pasara lo mismo, te sugiero hagas lo siguiente :

Debes digitar toda la informacion del asiento contable y cuando oprimas la tecla para grabar ahi es donde bloqueas y pones el numero al asiento y despues obviamente liberas el fichero.

digamos que el correlativo es 3, hay tres equipos trabajando y capturando asientos, cuando uno de ellos finaliza captura automaticamente el correlativo e incrementa a 4 el mismo y libera el fichero, despues el otro equipo el otro etc en orden de sucesion y asi no tendras el problema,

ojala te sirva de algo,

Saludes desde Managua, Nicaragua,

Ramon Paredes
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:Grabar en Red

Publicado por Gabriel Martin (41 intervenciones) el 02/03/2009 10:03:27
Buenas Ramón:

creo que no me expliqué bien, pero es eso justo lo que hace el programa. O sea, hasta que no se oprime el boton de OK, no se bloquea, obtiene, cambia y bloquea, el proceso de numeración, y aún y así, no siempre se ejecuta bien.

Es lo que no entiendo.

Gracias de todas formas por tu interés

Saludos Gabriel
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