Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Transactions - Do the work on straight VFP tables?
Message
De
23/06/2003 16:01:09
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Divers
Thread ID:
00803063
Message ID:
00803069
Vues:
9
This message has been marked as the solution to the initial question of the thread.
Maybe the first line (2nd sentence) of the documentation for BEGIN TRANSACTION will help:
Transactions are supported only for tables in a database.
>Hey all,
>
>I am mightily confused. Consider, if you will, the following code:
>
>
>CLOSE DATABASES ALL
>
>SET MULTILOCKS ON
>
>USE c:\docket SHARED
>
>CURSORSETPROP('Buffering', 5, 'docket')
>
>SUSPEND
>
>SELECT docket
>UPDATE docket SET case_no = 'FOUR'
>BEGIN TRANSACTION
>IF TABLEUPDATE(.T., .T., 'docket')
>	ROLLBACK
>	TABLEREVERT(.T., 'docket')
>ENDIF
>
>RETURN .T.
>
>
>Pretty simple, right? I am testing if a ROLLBACK will work to stop changes in the docket work area.
>
>After the SUSPEND, I step through. After the UPDATE statement, I use another session of VFP to look at the docket table. No changes yet. Good. That's what I expect, as the buffered cursor is holding the changes, not the table.
>
>Then I BEGIN TRANSACTION and do a TABLEUPDATE(). After the TABLEUPDATE I check my table again from the other VFP session. The changes are there. I find this sort of weird, since most transactions stop writing from occuring in the first place instead of trying to take it back later. No matter, I figure Fox must do it differently, rolling back the changes in the event of a ROLLBACK.
>
>So, I step one more line and execute the ROLLBACK. My data in the other session still shows the changes after a complete close and re-open of the table. The changes are there. What is going on? ROLLBACK appears to be entirely ineffectual! The TABLEREVERT() was added in just because I saw it in the help file, but it doesn't make any difference, and I wouldn't expect it to as far as the back-end data goes.
>
>Can anyone tell me what I am forgetting? A SET command? Something else with CURSORSETPROP()? I am sure I have had transaction working before, and now I can't even get the simplest example to work...
>
>Please help! I appreciate it! (Dan, if you are reading, don't laugh at my stupidity...this really has me stumped right now... *smile*)
>
>JoeK
Fred
Microsoft Visual FoxPro MVP

foxcentral.net
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform