Pregunta: | 63294 - MODIFICAR UN DFB POR VARIOS USUARIOS |
Autor: | claudio claudio |
Hola amigos
tengo un problema , trabajo con una aplicacion de fox pro 2.6 y necesito saber si existe la posibilidad de abrir y modificar un dbf simultaneamente entre dos o mas pc en red intente con use .dbf shared pero esto solo deja abrir no modificar de ante mano gracias |
Respuesta: | hancito2003 |
Hola.
Es posible eso que dices. Tambien utilizo fox 2.6 y utilizo aplicaciones en red. El abrir y salvar o modificar al mismo tiempo no es ningun problema. El problema esta en que cada usuario trate de agregar un registro nuevo al mismo tiempo. El sistema hace un APPEND BLANK al mismo tiempo y uno de los registros no se copiara ya que ambos lo hacen en el mismo numero de registro. Pero para tu problema aqui va la solucion: Puedes utilizar alias para abrir las DBF o simplemente utilizar SELECT: Select 1 use nominas set order to codigo select 2 use empleados set order to codigo Ya desde aqui, en ves de abrir nuevamente las DBF, solo las pones en uso porque ya estan abiertas, es decir, imagino que lo haces asi: Use nominas DO WHILE .T. @5,5 say "Codigo del Empleado:"+ get codigo pict"999999" read if lastkey()=28 return endif if empty(codigo) use empleados set order to apellido go top brow last codigo=codemp loop endif use nominas go top seek codigo ENDDO Entonces, ahora lo haras asi: select 1 DO WHILE .T. @5,5 say "Codigo del Empleado:"+ get codigo pict"999999" read if lastkey()=28 return endif if empty(codigo) select 2 set order to apellido go top brow last codigo=codemp loop endif select 1 go top seek codigo ENDDO Cada vez que abres una DBF con un USE, la otra se cierra, por eso es que en vez de abrir cada una cada vez (que tambien satura la memoria de la pc), lo haces con un select. Si quieres abrir otra, subes donde declaras los select y tambien la declaras con otro select. De este modo puedes utilizarla cuantas veces quieras y tu programa quedara con las condiciones para compartirse en varias pc y ser utilizado por varias personas al mismo tiempo. Suerte.- |