Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
View used for deleting occasionally fails
Message
From
16/12/2002 11:30:39
 
 
To
All
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Title:
View used for deleting occasionally fails
Miscellaneous
Thread ID:
00733303
Message ID:
00733303
Views:
60
Hi Y'all,

I have a view that is used for deleting printouts (records) by our users. It is a parameterized view that joins a parent record with multiple child records. Users can pick from a list of printouts and either delete one of the printouts or use a checkbox in a grid to delete a bunch of them at once. This view never seems to fail on a single record but sometimes fails if the users want to delete over 8 or 10 records in one fell swoop. I have a feeling it might be failing in how I work with the view. I "reuse" the view after each deletion to then go on to a new record. Here is the code:

* init var before view opens first time or user is prompted
STORE 0 TO lnPrintOut_ID
USE v_DeleteOnePrintout

* this view join results in multiple rows so set buffering to table
CURSORSETPROP("Buffering",5)

* an array exists that holds the id's of the printouts to be deleted; loop
* through it requerying the view for each printout parent record

FOR lnAtRow = 1 TO ALEN(laPrintOutsList)

* load the Printout_Id into the var needed by the view
STORE laPrintoutsList[lnAtRow] TO lnPrintout_ID

* requery to fill the view with records
REQUERY()

* nuke all the records
DELETE ALL

* post the view: post all rows and force the update
STORE TABLEUPDATE(.T.,.T.) TO llPostedOkay

* (code here to handle if not posted okay)

* was having trouble here with errors firing occasionally saying that
* the view had uncommitted changes (when requeried the next printout) so
* added a TABLEREVERT() below and this seemed to stop that message

TABLEREVERT(.T.)

ENDFOR

*** End of code sample ***

Question: is it "better" to close the view altogether between deletes (ie. with a simple USE); I did not go this route with the above figuring it would
be faster to keep the view open and just requery it between printouts? But maybe this is problematic somehow

Thanks,
Albert
Next
Reply
Map
View

Click here to load this message in the networking platform