FoxPro/Visual FoxPro - Actualizacion de tabla!!!!!

 
Vista:

Actualizacion de tabla!!!!!

Publicado por keno (42 intervenciones) el 13/12/2002 17:39:00
Hace unos dias comente que tenia un problema que si como le hacia para escribir inmediatamente un dato en el disco debedo a que estoy usando cursores en unformulario me recomendaron usar flush() y no lo he usado pero me late que eso resolvera parte del problema ahora mi siguiente problema es necesito que el cursor de mi formulario tambien se actualice rapido.

Mi problema es este, el formulario es una factura y hay una tabla que guarda los datos de la factura incluyendo el numero de folio todo estaba muy hasta que el cliente quiso facturar en mas de una maquina, el caso es que para sacar el numero de folio que sigue me fijo cual es el ultimo que se uso e inmediatamente inserto un registro para que cuando otra maquina le pida el ultimo numero ya sea otro (El siguiente) pero esto no pasa, le asigna el mismo numero porque las actualizaciones no pasan en tiempo real.

A toda la ayuda que me puedan dar Gracias....

Keno
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:Actualizacion de tabla!!!!!

Publicado por Pedro Gómez Lillo (3 intervenciones) el 13/12/2002 19:22:57
Puedes ocupar una combinacion de comandos primero:

=TABLEUPDATE(.T.)

para actualizar el buffer del cursor o tabla luego el:

FLUSH

ya esto lo almacena directamente al disco.......
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:Actualizacion de tabla!!!!!

Publicado por Israel (60 intervenciones) el 13/12/2002 21:46:47
Para el sunto de la numeracion de facturas debes tener una tabla de control de numeros de facturas donde guardas el ultimo numero de la factura emitida.

Cuando terminas de hacer la factura recien asignas el numero y asi no habra problema de duplicacion de los mismos.

Espero esto te sirva

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

Gracias Israel

Publicado por keno (42 intervenciones) el 13/12/2002 23:55:22
Gracias

Si estoy usando una tabla de control de numeros, el problema es cuando dos computadoras terminan casi al mismo tiempo no se alcanza a actulizar la tabla y les da el mismo numero. al final de la factura osea al guardarla le pongo el siguiente codigo.

Select folio_r
mFolio = folio_r.folio + 1
update folio_r set folio = mFolio
flush()

Pero esto no me lo hace en linea. asi que si hacen la solicitud un un lapso de 3 o 5 segundos les asigna el mismo numero

Agrasco cualquier comentario.
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:Actualizacion de tabla!!!!!

Publicado por Felipe navarrete (5 intervenciones) el 14/12/2002 21:07:06
esto es lo que tienes que hacer para el folio de la factura

select folios
asegura_registro()
xvar=FolFac+1
replace FolFac with xvar
tableupdate(.t.)

select facturas
replace Folio with Xvar
tableupdate(.t.)

con esto vas a solucionar tu problema con los consecutivos, debes de tener una funcion para asegurar el registro, si tienes dudas enviame un correo y con gusto te ayudare
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:Actualizacion de tabla!!!!!

Publicado por Shirley (95 intervenciones) el 18/12/2002 02:00:38
Trabajo con un sistema de facturación en linea para 4 cajeros, y resolví el problema de duplicación de esta forma:
Tengo una tabla de dos campos: el número de factura y un estado (.t. o .f.) el programa para tomar el numero pregunta si el estado es .t. si es así inmediantamente cambia el estado a .f. y ejecuta el prodecimiento de asignación o sea el numero+1 el grabado y todo, una vez que graba el número en el registro del cliente cambia el estado a .t. nuevamente, entonces debes tener un ciclo de pregunta permanente del estado del número, entra solo si está en .t. si no es así continua dando vueltas hasta que liberen el registro.
Espero que te sirva
SAludos de ORURO - BOLIVIA
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