Subject | R: [IBO] V.4.2Ga - TIB DMLCache: the new enhance work as expected? |
---|---|
Author | Enrico Raviglione |
Post date | 2002-04-19T17:45:56Z |
Hi Jason,
if i was in edit on a record then i think it is correct don't refresh it,
but your code don't seem make this work.
I have debugged your code and the test (Bookmark=KeyFields.RowData) seem to
be true alwais (if i was in edit) and not only when the edited record is the
same of the DML refresh request.
Regards,
Enrico Raviglione.
-----Messaggio originale-----
Da: Jason Wharton [mailto:jwharton@...]
Inviato: venerdi 19 aprile 2002 2.32
A: IBObjects@yahoogroups.com
Oggetto: Re: [IBO] V.4.2Ga - TIB DMLCache: the new enhance work as
expected?
I beleive it is coded to work correctly. When a DML cache item is being
processed by a dataset, I prefer it to not interfere with the current record
if it is in an edit state. So, if the KeyFields.RowData is the same as the
Bookmark then that means it should set the flag to defer the action instead
of immediately carrying it out.
Ideally, what I want it to be able to do is go ahead and carry the operation
out, even while it is in an edit state. I'd just have it refresh the
OldValues buffer and the NewValue buffer if it hasn't been modified by the
user yet. This way, the refresh will simply put the value wherever it is
appropriate to put them under all circumstances. I guess it may be useful to
set a flag, perhaps in the RowFlags or something, that would indicate that
the OldBuffers were actually changed.
Any more thoughts on this area?
Jason Wharton
if i was in edit on a record then i think it is correct don't refresh it,
but your code don't seem make this work.
I have debugged your code and the test (Bookmark=KeyFields.RowData) seem to
be true alwais (if i was in edit) and not only when the edited record is the
same of the DML refresh request.
Regards,
Enrico Raviglione.
-----Messaggio originale-----
Da: Jason Wharton [mailto:jwharton@...]
Inviato: venerdi 19 aprile 2002 2.32
A: IBObjects@yahoogroups.com
Oggetto: Re: [IBO] V.4.2Ga - TIB DMLCache: the new enhance work as
expected?
I beleive it is coded to work correctly. When a DML cache item is being
processed by a dataset, I prefer it to not interfere with the current record
if it is in an edit state. So, if the KeyFields.RowData is the same as the
Bookmark then that means it should set the flag to defer the action instead
of immediately carrying it out.
Ideally, what I want it to be able to do is go ahead and carry the operation
out, even while it is in an edit state. I'd just have it refresh the
OldValues buffer and the NewValue buffer if it hasn't been modified by the
user yet. This way, the refresh will simply put the value wherever it is
appropriate to put them under all circumstances. I guess it may be useful to
set a flag, perhaps in the RowFlags or something, that would indicate that
the OldBuffers were actually changed.
Any more thoughts on this area?
Jason Wharton
----- Original Message -----
From: "Enrico Raviglione" <e.raviglione@...>
To: <IBObjects@yahoogroups.com>
Sent: Friday, March 08, 2002 10:13 AM
Subject: [IBO] V.4.2Ga - TIB DMLCache: the new enhance work as expected?
> Hi Jason,
> in your ReleaseNotes of V.4.2G i read:
>
> The DML caching/dataset synchronizing feature was enhanced so that it
> wouldn't interfere with datasets currently in a non-browsing state.
Instead
> of doing that it will wait until after the dataset is posted and then do a
> Refresh in order to get the dataset synchronized. This default bahavior is
> subject to furthur refinements because obviously I would like it to do
what
> it can without interrupting a dataset in an edit state. There is no reason
> other records in the buffer cannot be refreshed if they are what is being
> synchronized. In short, I'd like it to intelligently perform all
> synchronizing actions possible rather then deferring them.
>
> But i have test it in my work on TIBO-DMLCaching and i think your enhance
> don't work how you expect.
>
> >From IBA_BDataset.IMP:
>
> if NeedToPost and ( Bookmark = KeyFields.RowData ) then
> FRefreshDML := true
> else
> case ADMLCacheItem.DMLCacheItemType of
> ditEdit: InvalidateBookmark( KeyFields.RowData );
> ditDelete: DeleteBufferBookmark( KeyFields.RowData );
> ditInsert: InsertBufferBookmark( KeyFields.RowData );
> end;
>
>
> An example: if the TIB_BDataset1 are in edit on record number. 3 and
receive
> a DMLCache notification of a change occured on record n. 2 the NeedToPost
is
> true but also the second condition (Bookmark=KeyFields.RowData) are true!!
>
> This is correct or not ?
>
> Regards,
> Enrico Raviglione.
>
>
>
___________________________________________________________________________
> IB Objects - direct, complete, custom connectivity to Firebird or
InterBase
> without the need for BDE, ODBC or any other layer.
>
___________________________________________________________________________
> http://www.ibobjects.com - your IBO community resource for Tech Info
papers,
> keyword-searchable FAQ, community code contributions and more !
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
>
___________________________________________________________________________
IB Objects - direct, complete, custom connectivity to Firebird or InterBase
without the need for BDE, ODBC or any other layer.
___________________________________________________________________________
http://www.ibobjects.com - your IBO community resource for Tech Info papers,
keyword-searchable FAQ, community code contributions and more !
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/