FoxPro/Visual FoxPro - Grabar datos en red en VFP9

 
Vista:
Imágen de perfil de Jairo Sanchez

Grabar datos en red en VFP9

Publicado por Jairo Sanchez (2 intervenciones) el 13/09/2014 17:33:31
Hola, estoy realizando una aplicacion en VFP9, en donde registro datos en un formulario, tengo una base de datos con una tabla llamada "HC" que es donde registro los datos de las historias clinicas, lo que quiero es que mi aplicacion trabaje en red, es decir ke el pc1 al momento de registrar un dato no tenga conflicto con el pc2, que tambien registra datos y que cada computador en donde este la aplicacion genere un consecutivo. Si me pueden ayudar les agradezco en el alma.

pd. Que la base de datos soporte varios pc (pc1, pc2, pc3,.. etc..)

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

Grabar datos en red en VFP9

Publicado por Jaime Rocha (3 intervenciones) el 17/09/2014 06:29:47
Podrías crear el ID de tu tabla como INT (autogenerado) de esta manera los consecutivos no se repetirían, y si lo que quieres es identificar el registro de cada pc, podrías crear un ID para cada pc y guardarlo en un campo de tu tabla
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

Grabar datos en red en VFP9

Publicado por Osmar (1 intervención) el 19/09/2014 17:11:47
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
**Si aun no has encontrado una solución esto te puede servir para que no se repita los numero generados automaticamente al grabar en dos maquinas al mismo tiempo
**Autoincrementar numeros de tablas
 
FUNCTION NuevoID(tcAlias)
  LOCAL lcAlias, lnId, lnAreaAnt, lcReprAnt
  lnId = 0
  lnAreaAnt = SELECT()
  lcReprAnt = SET('REPROCESS')
  SET REPROCESS TO AUTOMATIC
  lcAlias = UPPER(ALLTRIM(tcAlias))
  IF NOT USED("Ids")
    USE Ids IN 0
  ENDIF
  SELECT Ids
  IF SEEK(lcAlias, "Ids", "cTabla")
    IF RLOCK()
      REPLACE Ids.nId WITH Ids.nId + 1 IN Ids
      lnID = Ids.nId
      UNLOCK
    ENDIF
  ENDIF
  SELECT (lnAreaAnt)
  SET REPROCESS TO lcReprAnt
  RETURN lnID
ENDFUNC
 
*!*	Cada vez que necesitemos un nuevo número consecutivo de una tabla, invocamos la función pasando el nombre de la tabla o su alias como parámetro:
 
*!*	lnNuevoId = NuevoId("Facturas")
 
*!*	El valor retornado por la función NuevoId() es del tipo Entero. Si por ejemplo el código de cliente de nuestra tabla Clientes es del tipo caracter de 4 y justificado con 0s (ceros) a la izquierda, transformamos el número retornado de la siguiente manera:
 
*!*	lcCodCli = TRANSFORM(NuevoId("Clientes"), "@L 9999")


Espero que te sirva...
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
Imágen de perfil de Jairo

Grabar datos en red en VFP9

Publicado por Jairo (2 intervenciones) el 19/09/2014 21:22:43
Gracias, lo intentare y te cuento, gracias por la colaboracion.

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