Migration problem going from TDACDSDataTable to TDAMemDataTable

where do i send it to?

i was going to add a .Last after the call in the expectation that the added records are indeed added at the end of those already in the dataset?
is that what you have in mind?

you can send testcase to support@

you asked:

for making decision, I need to see how to you manipulate with data.
you may do it in some incorrect or unoptimal way

also testcase can show code that shows original issue in debug mode.

finally, probably you shouldn’t touch Filtered at all:
imagine a case:

  • main table - w/o any filter
  • cloned table - linked to main table but has filter

after fetching a new record to main table, cloned table may show that record at last position

anyway, testcase is required for suggesting valid solution.

can i count on the fact that the data from a loadfromremotesource is added to the end of the existing data in tdamemdatatable?

yes, it is

is .1491 stable? cause the splash screen states beta?

nowadays we have
stable: .1491
preview: .1493

you can install .1491 into virtual machine and perform some tests for stability


pls read the Breaking changes article

yep i’m gonna test this against 1491
but the splash screen when starting delphi shows beta that’s why i asked…

it treats 3rd number (even) in version: 10.0.0.1463 as beta.
it worked in all versions before 10.x.x.x

anyway rebuilding in 10.4 with this build makes our server app crash
access violation in:
image
and afterwards this:
image

hi,

already fixed.
update DataAbstractService_Impl.pas as

constructor TDataAbstractService.Create(aOwner : TComponent);
begin
  fExportedDataTables := TDADataTableReferenceCollection.Create(Self);  // <--- moved before inherited
  inherited;

hmm this is an issue for everyone running the latest stable release i guess… ?

well this is not what i expected, in 1491 it seems to work like expected…
anything changed in the way loadfromremotesource works?

LoadFromRemoteSource wasn’t changed for ages and it works as you want:

video:

oh wait, i’m using binstreamer so i’m investigating the change to bin2 now

nope changing to bin2 also works like expected

so something is changed between 1463 and 1491 for tdamemdatatable and loadfromremotesource
my code is the same…

can you describe again what you think was broken in MEM in 1491 comparing with .1463, pls?

ok, situation is to remove as much legacy as possible at this point, starting with replacing binstreamer with bin2streamer and thus moving from TdaCDS to TdaMEM

1463 (D10.3.3):
TdaCDS.loadfromremotesource => positons on the loaded rec -> expected behaviour
TdaMEM.loadfromremotesource => positions on the first rec after loaded rec -> unexpected

1491 (D10.4)
TdaMEM.loadfromremotesource => positions ont the loaded rec -> expected behaviour

so in fact the 1491 release seems ok at this moment…in regards to TdaMem.LoadFromremotesource

some stuff can be related to Delphi itself.
better to compare on the same version of Delphi because they also can add some mess

ok will do, but still on 10.3.3 the behaviour between CDS and MEM should be the same right?
(which isn’t)

not yet. it depends on internal TDataset class.
in CDS this is standard TClientDataset, in Mem - TDAMemoryDataset.
we can’t do anything with TClientDataset but can review changes for TDAMemoryDataset