Pregunta sobr TableUpdate()

11/04/2005 - 23:16 por Andys | Informe spam
Amigos:
Alguien me puede aclarar cual es la intrucion correcta o
que pasa cuando hago de estas dos formas.

1) =tablerevert(.T.,"articulos")
2) =tablerevert(.F.,"articulos")

1) =tablerevert(.T.,.T."articulos")
2) =tablerevert(.F.,.F."articulos")

lo he hecho de todas dos y me funcina cual es la
diferencia?

Gracias.

A ndys Bohorquez
cartagena-colombia
 

Leer las respuestas

#1 Esparta Palma
11/04/2005 - 23:59 | Informe spam
La ayuda del producto me parece clara:

TABLEREVERT( [lAllRows [, cTableAlias | nWorkArea] ] )

llAllRows
False (.F.)
If table buffering is enabled, only changes made to the current record
in the table or cursor are discarded. (Default)

True (.T.)
If table buffering is enabled, changes made to all records are
discarded in the table or cursor.

Esto es, que si tienes Buffering a *nivel tabla* usando .F., solo
descartará los cambios en el registro que esté tu cursor, en cambio, si
usas .T., descartarás los cambios en toda la tabla. Para muestra un ejemplo:

*** Creamos un cursor ***
CREATE CURSOR cTemp (iid int)

**** Aplicamos el Buffering optimista nivel tabla
IF CursorSetProp("Buffering",5,"cTemp")
*** Insertamos 10 registros...
FOR lnCounter=1 to 10
INSERT INTO cTemp (iid) VALUES (lnCounter)
ENDFOR

*** Movemos el puntero del cursor 3 registros hacia atras

SKIP -3 IN "cTemp"

*** Descartamos los cambios sólo en el registro en el que se encuentra

lnRevertedRecords = TableRevert(.F.,"cTemp")
Messagebox("Se descartaron "+transfor(lnRevertedRecords,"@L 99")+;
" registros")

**** Observe que ha "desaparecido" solo un registro, el 7
BROW

*** Ahora descartamos todos
lnRevertedRecords = TableRevert(.T.,"cTemp")

Messagebox("Se descartaron "+transfor(lnRevertedRecords,"@L 99")+;
" registros")
*** Observe que ningun registros se encuentra en nuestra tabla
BROW

ELSE
**** Caso muuuy raro, pero pudiera darse,
**** No se pudo aplicar Buffering a la tabla
Messagebox("Error al intentar crear Buffering de Datos en la Tabla")
ENDIF


Tambien he visto que en tu codificación no revisas los valores devueltos
por las funciones, esto es un error que debería de evitarse, es muy
común, pero podrías revisarlos tu mismo:

Errores comunes al trabajar con Visual FoxPro
http://www.panoramabox.com/GoPub.as...bj"33

Espero te sirva.

P.S. Tus dos ultimos ejemplos deberían de devolverte un error, fijate si
no tienes deshinibido el control de errores.

ž,ø€º°`°º€ø,žž,ø€º°`°º€ø,žž,ø€º°`°º€ø,žž,ø€º°`°º

Espartaco Palma Martínez
SysOp http://www.PortalFox.com
México D.F.
MoBlogs!
http://weblogs.golemproject.com/esparta/
http://www.espartha.com/blog/

Andys wrote:
Amigos:
Alguien me puede aclarar cual es la intrucion correcta o
que pasa cuando hago de estas dos formas.

1) =tablerevert(.T.,"articulos")
2) =tablerevert(.F.,"articulos")

1) =tablerevert(.T.,.T."articulos")
2) =tablerevert(.F.,.F."articulos")

lo he hecho de todas dos y me funcina cual es la
diferencia?

Gracias.

A ndys Bohorquez
cartagena-colombia

Preguntas similares