Page 1 of 1

Que forma de Archivos, y Browse deo usar para este problema.

Posted: Wed Nov 02, 2005 3:00 pm
by luis cortes
Amigos, tengo el siguiente problema, estoy trabajando en Red, bueno el cliente necesita ingresar facturas de compra, en un pc, hasta ahi todo bien, pero ahora se le ocurrio hacer lo mismo con 3 pc, o sea, que tres equipos entren a la misma funcion y hagan el mismo trabajo, bueno en DOS, yo eso lo habia superado con macros, pero en FW, me funcionan para algunas cosas, pero con TSBROWSE, en el modo de edicion no me sirve, se cae.

es TSBROWSE, lo mejor para red, debo usar archivos temporales o pasarme a TDBF, pero cuando oo ejecuto, me sale un error de DBFSERVER, entonces, que hago amigos mios, necesito su ayuda, esto me tiene entrampado, y lo peor es que este cliente necesita que una ventana, se pueda abrir en "el mismo" equipo mas de una vez, es decir que tenga 3 o 4 notas de ventas en pantalla, que tipo de clase o formato de archivos debo usar, se que debo usar mdi, pero esto puede trabajar con dialogos con get y say... ?, digamen, que necesito para trabajar con archivos en red, lo mismo de clipper, la clase tdatabase de FW o TDBF.. me urge, please

Posted: Wed Nov 02, 2005 5:06 pm
by Antonio Linares
Luis,

Copiado de la documentación de FiveWin:
Programación en red

Si nunca ha diseñado una aplicación en red con Clipper, no se preocupe. No es complicado. Sólo tiene que seguir estas reglas:

Todas las bases de datos se abren en modo 'SHARED' por defecto, excepto si especifica la cláusula 'EXCLUSIVE', o ha cambiado el estado de SET EXCLUSIVE (consulte los mandatos USE y SET EXCLUSIVE de Clipper).

Una vez abierta en modo compartido, todos los usuarios de la red pueden utilizarla; o bien, varias ventanas MdiChild o cuadros de diálogo no modales pueden acceder a la información de la base de datos al mismo tiempo.


No es posible manipular el contenido de un campo directamente. Antes de cambiar el valor de un campo, debe bloquear el registro mediante una estructura como la siguiente:

if MyAlias->( RLock() ) // Bloquea el registro
MyAlias->Field := <NewValue> // Modifica el contenido
MyAlias->( DbUnLock() ) // Desbloquea el registro
else
MsgAlert( "La base de datos está siendo usada..")
Endif


Algunas operaciones de base de datos (como crear un índice completo) precisan que abra la base de datos en modo EXCLUSIVE, o que bloquee toda la base de datos y no sólo un registro.

Utilice USE ... EXCLUSIVE para abrir una base de datos de forma exclusiva, o la función FLock() para bloquear completamente el fichero.