>I want to undo one or more last operations performed on the data.
>
>Operation I mean is like Inserting a new recod, or replacing a field value in multiple records.
>
>User if needs, should be able to undo the last operation.
>
>Does VFP provides any such support or is there any third party product?
Using both buffering and transactions, you have the ability to back out a set of changes, additions or deletions - with buffering, TABLEREVERT() will cause any changes to a table currently held in the application's buffer not to be applied to a table; the ROLLBACK option of a transaction will prevent a set of changes to one or more tables from being applied within the scope of a transaction.
Once changes are committed to a table, there's no transaction journalling built into VFP to back out an update; many backend products like Oracle or SQL Server provide this sort of functionality, and they can be used in conjunction with VFP, where VFP accesses the backend through any of a number of different means such as the use of remote views, or via SQL Passthrough.
You can also write your own journalling, but in most cases, it's better in the long run to use a backend with this capability integrated into the server, since if you write uor own, it's only available from inside your own application; if you access things from the VFP command line, or from another product, your journalling probably won't be available to protect the database.