Rutina de ejemplo de scatter y gatter

02/09/2004 - 03:10 por Hecpok | Informe spam
Hola amigos

Soy novato en Vfp6.0. Me gustaria saber, si es posible que me puedan dar un
ejemplo pequeño de como usar dichos comandos, ya que aun no me ha quedado
claro como grabar registros usando el bloqueo de registros.

En clipper usaba lo siguiente, ¿ como podria adaptar este codigo a la manera
de Fox ?

Al grabar (modificacion de datos)

if rlock()
replace mibase.codigo with m_codigo,;
mibase.descripcion with m_descripcion
unlock
else
wait "registro ocupado"
endif

Muchas gracias
Hector
Santiago de Chile
hmc31@chile.com

Preguntas similare

Leer las respuestas

#1 José G. Samper
02/09/2004 - 04:04 | Informe spam
Hola como estas, usa buffering, te copio respuesta de ana

Mira este artículo: Buffering y datos multiusuarios de Doug Henning
traducido por Germán Giraldo para PortalFox en
http://www.portalfox.com/modules.ph...mp;secid=9
(una sóla línea)

Te ayudará también leer el artículo Transacciones de Jim Booth traducido por
Pablo Roca y lo encuentras en:
http://www.portalfox.com/modules.ph...&artid&page=1
(una sóla línea)

Saludos,

Ana
www.amby.net


José G. Samper
http://www.FoxyNet.net
MCAD.Net
"Hecpok" escribió en el mensaje
news:
Hola amigos

Soy novato en Vfp6.0. Me gustaria saber, si es posible que me puedan dar


un
ejemplo pequeño de como usar dichos comandos, ya que aun no me ha quedado
claro como grabar registros usando el bloqueo de registros.

En clipper usaba lo siguiente, ¿ como podria adaptar este codigo a la


manera
de Fox ?

Al grabar (modificacion de datos)

if rlock()
replace mibase.codigo with m_codigo,;
mibase.descripcion with m_descripcion
unlock
else
wait "registro ocupado"
endif

Muchas gracias
Hector
Santiago de Chile



Respuesta Responder a este mensaje
#2 Leonardo Cadena
02/09/2004 - 22:16 | Informe spam
Amigo Ahora Con Dos o Cuatro Lienas haces todo

Editar = .f. && variable para ver si estamos editando
En tu form cargas los campos de la tabla que bas a
trabajar solo que le antepones una (M) ejemplo m.micampo

Luego...
si pinchas un botton NUEVO editar serai .f. (no vamos a
editar creaaremos un registo en blanco)

si pinchas un botton EDITAR editar serai .T. ( vamos a
editar un registo QUE YA existe)


Ojo...
Para Boton Nuevo
Editar = .f.
Scatter Memvar Memo Blank && Carga en memoria registro en
blanco con laestructura de la tabla actual

Para Boton Editar
Editar = .t.
Scatter Memvar Memo && Carga en memoria El Registro
Actual con Su Estructura de la tabla actual

OJO EL TRUCO ES AQUI...
BOTTON Grabar
Luego al GRABAR ojo con la variable editar.. esta .f.
por lo tanto es un registro nuevo..
If editar
Gather Memvar Memo
Else
Insert Into(alias()) From Memvar
Endif
Editar = .f.
Y listo eso es todo..
Thisform.Refresh


Suerte ... Ojala te ayude o te sirva de algo...
Respuesta Responder a este mensaje
#3 Alex Feldstein
03/09/2004 - 01:56 | Informe spam
On Thu, 2 Sep 2004 13:16:47 -0700, "Leonardo Cadena"
wrote:

Amigo Ahora Con Dos o Cuatro Lienas haces todo
[SNIP]
Para Boton Editar
Editar = .t.
Scatter Memvar Memo && Carga en memoria El Registro
Actual con Su Estructura de la tabla actual

OJO EL TRUCO ES AQUI...
BOTTON Grabar
Luego al GRABAR ojo con la variable editar.. esta .f.
por lo tanto es un registro nuevo..
If editar
Gather Memvar Memo
Else
Insert Into(alias()) From Memvar
Endif
Editar = .f.
Y listo eso es todo..
Thisform.Refresh




Ejemplo de código antiquisimo y no OOP. SCATTER MEMVAR no tiene ya uso
en VFP. La unica variante que tiene valor hoy enm dia es SCATTER NAME.

La forma correcta, la que te permite absoluto control y simplifica la
resolucion de conflictos es usar Buffering, TableUpdate/TableRevert.
ver tambien en la ayuda: GetNextModified/OldVal/Curval


Alex Feldstein
________________________________
Microsoft Visual FoxPro MVP
Please respond in the public groups so that everybody
can benefit from the exchange.
Favor de responder en los foros públicos asi todos se benefician.
(Address scrambled with ROT-13)
Respuesta Responder a este mensaje
#4 Hecpok
05/09/2004 - 01:13 | Informe spam
Gracias por la ayuda.
Estuve viendo los links que me dieron, los imprimi, pero topé con un
problema. En los links se habla de terminos de transacciones, etc, pero todo
eso, solo es válido (por lo que lei), para bases de datos. Mi sistema por
razones de tiempo, no fue "visualizado" con bases de datos, sino con tablas
libres.
¿ con el tema de las tablas libres, como puedo enfrentar el tema de los
bloqueos ?

Muchas gracias
Hector
Santiago de Chile
Respuesta Responder a este mensaje
#5 Alex Feldstein
05/09/2004 - 13:18 | Informe spam
On Sat, 4 Sep 2004 19:13:51 -0400, "Hecpok" wrote:

Gracias por la ayuda.
Estuve viendo los links que me dieron, los imprimi, pero topé con un
problema. En los links se habla de terminos de transacciones, etc, pero todo
eso, solo es válido (por lo que lei), para bases de datos. Mi sistema por
razones de tiempo, no fue "visualizado" con bases de datos, sino con tablas
libres.
¿ con el tema de las tablas libres, como puedo enfrentar el tema de los
bloqueos ?




En ese caso a la antigua (pero entonces para que has invertido el
dinero y tiempo de estudio en VFP?)

Sigo sin entender tu problema. Dices que "por razones de tiempo no fue
visualizado". No se que significa esto y que tiene que ver con un DBC.

Cuanto te tarda crear un DBC? A ver: 20 segundos para crearlo y luego
unos cuantos segundos para agregar cada tabla a tu DBC. Hagamoslo
lento y digamos un minuto por tabla. Si tienes 10 tablas, como mucho
seria 10 minutos.

Luego en tu programa principal, o en el load de tu form principal
abres el DBC con:

Open Database xxx

Ahora apagas tu crónometro. Cuanto tiempo te llevo?



Alex Feldstein
________________________________
Microsoft Visual FoxPro MVP
Please respond in the public groups so that everybody
can benefit from the exchange.
Favor de responder en los foros públicos asi todos se benefician.
(Address scrambled with ROT-13)
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida