Hello David,
I had a close look on this and you are definitly right it wont work this way.
Thinking a little bit of this I believe a second condition like you wrote would be the best way to fix this. Because just putting the .T. in the existing statement would have the effect that all changes (although changes on other records not caused by delete) would be updateted what is not the thing that I would expect to happen.
BTW: I would change the Parameter for Tableupdate from .T. to 1, the Parameter is nRows and it is more clear then even .T. works, I know....
Marcus
>I am unable delete an entire view's contents from a business object, and I think I found the culprit, but it seems like someone else would have stumbled on this before me, so I'm not sure.
>
>In the cCursor.delete() method (of cDataEnv), if the tlImmediate parameter is .t., a tableupdate() is called with no parameters. But for table buffering, tableupdate() should be called with a '1' or a '.t.' as a parameter.
>
>I tried adding the parameter to cCursor, and it worked, but I took it out because I'm afraid of the implications it could have when I do record buffering (which is most of the time).
>
>Seems like there should be an additional block of conditional logic to handle tlImmediate=.t., tlDeleteAll=.t. along the lines of:
>
>
>If tlImmediate=.t. and tlDeleteAll=.t. and cursorgetprop("buffering")=5
> if not tableupdate(.t.)
> return FILE_ERRORHANDLED
> endif
>endif
>