Hallo generic,
danke für die Antwort.
Zitat von
generic:
Bin gerade dabei ein Applicationserver zu schreiben, welcher auf einen Client einen VST aktuallisieren muss. (datenändern, hinzufügen und löschen)
Soweit, etwa gleiche Vorgaben.
Zitat von
generic:
Der Server erzeugt von seinen Daten eine Art Diff.
Dieses schickt er zum Client.
Der Client durchläuft dann jeden Diffdatensatz, versucht dabei einen Knoten mit der gleich ID zu finden.
Dann ändert er die Daten oder löscht den Knoten.
Ist kein Knoten da, ist es ein neuer Datensatz.
Das brauche ich nicht. Die Daten kommen sequentiell, d.h. kenne ich die aktuelle RecordCount Größe, weiß ich, welche fehlen.
Ich teste gerade einen anderen Lösungsansatz, bekomme aber hier mit dem OnInitNode Probleme.
Wie kann man das anders machen:
Delphi-Quellcode:
var
Data: PMyData;
begin
inherited;
Data := Sender.GetNodeData(Node);
Initialize(Data^);
Data.ID := MeineTabelle.FieldByName('MeineID').AsInteger;
Data.Text := MeineTabelle.FieldByName('MeinText').AsWideString;
if not MeineTabelle.Eof then // <- das möchte ich ablösen
MeineTabelle.Next; // <- "" - ""
end;
Ich habe versucht, einfach MeineTabelle.RecNo auf Node.Index zu setzen (mit Größenprüfung) und Eof/Next wegzulassen. Dann erhalte ich bei Vergrößerung des RootNodeCount von z.B. 2000 auf 2500 aber nur gleiche Werte von 2001 bis 2500.
Ideen? Ich habe schon im VTV Tut, den
DB Beispielen (Extensive und Basic), den Yahoo Archiven und bei
DP gesucht. Aber diesen Ansatz scheint keiner vorher mal gemacht zu haben...
Gruß winkel79