![]() |
aktuellen Datensatz kopieren/duplizieren
mit folgender Funktion kann der aktuelle Datensatz als Kopie
eingefügt werden:
Delphi-Quellcode:
Das Dataset befindet sich jetzt im Einfügemode (dsInsert).
procedure DuplicateCurrentRecord(aDataSet : TDataSet);
var Data : array of variant; aRecord : array of TVarRec; i : integer; max : integer; 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] := aDataSet.fields[i].value; aDataSet.Append; aDataSet.SetFields(aRecord); end; Das Programm oder der Benutzer muss nun zumindest das Primärschlüsselfeld abändern, sonst kann der Datensatz nicht gepostet werden. Hier ein Beispiel:
Delphi-Quellcode:
[edit=Matze]Code formatiert. Mfg, Matze[/edit]
begin
DuplicateCurrentRecord(Table1); Table1['Kundennr'] := Table1['Kundennr']+'b'; // Primärschlüsselfeld ändern Table1.Post; // Datensatz posten end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz