Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ClientDataset-Datensätze kopieren (https://www.delphipraxis.net/46894-clientdataset-datensaetze-kopieren.html)

merlin17 2. Jun 2005 14:51

Datenbank: ClientDataset • Version: 7 • Zugriff über: CDS

ClientDataset-Datensätze kopieren
 
Hallo,

irgendwie stehe ich (nach 2 Wochen Urlaub ) auf dem Schlauch :gruebel:

Ich habe ein CDS mit 10 Datensätze, ferner noch ein Archiv-CDS (mit gleicher Struktur).
Ich will nun die 10 Datensätze dem Archiv-CDS hinzufügen (move oder copy).
Wie geht es am schnellsten, der Weg über InsertRecord ist mir zu umständlich... :oops:

danke für jeden Tip!


:-) thomas

jensw_2000 3. Jun 2005 00:40

Re: ClientDataset-Datensätze kopieren
 
Dazu kannst das dir folgenden Codelib Eintrag "verbiegen"

[cl]aktuellen Datensatz kopieren/duplizieren[/cl]

Delphi-Quellcode:
procedure CopyCurrentRecord(Quelltabelle, Zieltabelle : TDataSet);
var
  Data : array of variant;
  aRecord : array of TVarRec;
  i : integer;
  max : integer;
begin

  Quelltabelle.first;

  While not Quelltabelle.eof do
  begin

    max := aDataSet.fields.count -1;
    // set the lenghth of the arecord array to be the same as the number of
    // elements in the data array
    SetLength(arecord,max+1);
    SetLength(data,max+1);

    // set the variant type pointers to the data array
    for i := 0 to max do
    begin
      arecord[i].VType := vtVariant;
      arecord[i].VVariant := @data[i];
    end;

    // Copy the Record to the Array
    for i := 0 to max do
      Data[i] := Quelltabelle.fields[i].value;

    // hier muss ggf noch etwas geschraubt werden, falls du berechnete- bzw. Autoinc Felder verwendest
    Zieltabelle.Appendrecord(aRecord);
   
    // fertig, nächster Datensatz ..
    Quelltabelle.next;

  end; // While

end;

merlin17 3. Jun 2005 06:04

Re: ClientDataset-Datensätze kopieren
 
Thanks!

werde ich gleich testen!



;-) thomas


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz