Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Begin & End Transaction
Message
From
22/10/1997 15:36:28
 
General information
Forum:
Visual FoxPro
Category:
Troubleshooting
Miscellaneous
Thread ID:
00056104
Message ID:
00056145
Views:
26
>Any idea why the tableupdate in the following code would fail. Note that this is a simplified version of my code. In my application I am actually updating five tables.
>
>SET MILTILOCKS ON
>SET EXCLUSIVE OFF
>SET DELETED ON
>
>USE mytable IN 0 shared
>=CURSORSETPROP("buffer", 5, "mytable")
>
>DELETE FROM mytable WHERE RECNO() <= 500
>
>BEGIN TRANSACTION
>IF !TABLEUPDATE(.T., .T., "mytable")
> ROLLBACK
> = TABLEREVERT(.T., "mytable")
>ELSE
> END TRANSACTION
>ENDIF
>
>The above test works when I only delete 499 records but when I try 500 it fails. Each record in mytable is 1426 bytes. I also have the same problem if referential integrity deletes the 500 records (cascading delete).
>
>Thanks,
>Shane

Hi Shane,

I believe TABLEREVERT() is an illegal command within a transaction. You probably want something like

BEGIN TRANSACTION
IF NOT TABLEUPDATE( .T., .T., "MyTable" )
ROLLBACK
ENDIF
END TRANSACTION

Bill
William A. Caton III
Software Engineer
MAXIMUS
Atlanta, Ga.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform