I'm using a view with optimistic table buffering.

I go to requery() an SQL view, but get the error:
"Table buffer for alias ViewDocHeader contains uncommitted changes (Error
1545)". prior to this I use:

'setfldstate("DiscPCent", 1, "ViewDocHeader")' to manually set the field
status of the view, because the control source has been changed for a
control using the DiscPCent field, in debug I can see that this code:
getfldstate(-1, tcAlias) returns "1111111111111111111111", why does it still
think there are uncommitted changes, when in fact there isn't anything
different and I've used 'setfldstate'

Any help greatly appreciated.

Grant

Re: uncommitted changes and setfldstate by trw7at

trw7at
Thu Sep 16 11:33:14 CDT 2004

Grant seemed to utter in news:#gG7UE5mEHA.3868@TK2MSFTNGP11.phx.gbl:

> I'm using a view with optimistic table buffering.
>
> I go to requery() an SQL view, but get the error:
> "Table buffer for alias ViewDocHeader contains uncommitted changes
> (Error
> 1545)". prior to this I use:
>
> 'setfldstate("DiscPCent", 1, "ViewDocHeader")' to manually set the
> field status of the view, because the control source has been changed
> for a control using the DiscPCent field, in debug I can see that this
> code: getfldstate(-1, tcAlias) returns "1111111111111111111111", why
> does it still think there are uncommitted changes, when in fact there
> isn't anything different and I've used 'setfldstate'

Not sure what VFP looks at "under the covers", but I
would suspect that, internally, it examines the data
buffers themselves, not the fieldstate values. You
would think that GetFldState would look at the buffers
too and these two states would not be in conflict.

What version of VFP and Windows are you using?

-- TRW
_______________________________________
My e-mail: t r w 7
@ i x . n e t c o m . c o m
_______________________________________

Re: uncommitted changes and setfldstate by Al

Al
Thu Sep 16 15:46:49 CDT 2004

I think Tim is correct in that getfldstate does not report on "true" state
if you change it

It seems the value of this is in a class routine to update all buffers
when you are using views
example:
1 load a view and set different field values for user help (like cust
name, item desc, total of values, etc)
2.then use setfldstate to make all "11111..."
3. in your generalized routine, check getfldstate to see if you have to
issue a tableupdate or not
4. if not, issuer tabelrevert so fox no longer thinks changed

this can save considerable time in posting if there are many detail records

al



"Grant" <someone@microsoft.com> wrote in message
news:#gG7UE5mEHA.3868@TK2MSFTNGP11.phx.gbl...
> I'm using a view with optimistic table buffering.
>
> I go to requery() an SQL view, but get the error:
> "Table buffer for alias ViewDocHeader contains uncommitted changes (Error
> 1545)". prior to this I use:
>
> 'setfldstate("DiscPCent", 1, "ViewDocHeader")' to manually set the field
> status of the view, because the control source has been changed for a
> control using the DiscPCent field, in debug I can see that this code:
> getfldstate(-1, tcAlias) returns "1111111111111111111111", why does it
still
> think there are uncommitted changes, when in fact there isn't anything
> different and I've used 'setfldstate'
>
> Any help greatly appreciated.
>
> Grant
>
>
>
>