Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datensatz kopieren - Primärschlüssel will nicht (https://www.delphipraxis.net/42413-datensatz-kopieren-primaerschluessel-will-nicht.html)

Overburn 18. Mär 2005 12:54

Datenbank: Interbase • Zugriff über: Client/Server

Datensatz kopieren - Primärschlüssel will nicht
 
Hallo!
Ich hab folgendes Problem mir meiner kleinen Anwendung:
Und zwar möchte ich gerne einen Datensatz innerhalb einer Tabelle kopieren. Habe mich auch an die Anlietung aus der Library gehalten (Link).
Das siehr bei mir so aus:
Delphi-Quellcode:
PROCEDURE DuplicateCurrentRecord(aDataSet: TDataSet);
VAR
  Data: ARRAY OF variant;
  aRecord: ARRAY OF TVarRec;
  i: integer;
  max: integer;
  anzahl: integer;
BEGIN
  max := aDataSet.fields.count - 1;
  SetLength(arecord, max + 1);
  SetLength(data, max + 1);

  FOR i := 0 TO max DO BEGIN
    arecord[i].VType := vtVariant;
    arecord[i].VVariant := @data[i];
  END;

 FOR i := 0 TO max DO
    Data[i] := aDataSet.fields[i].value;
  aDataSet.Append;
  aDataSet.SetFields(aRecord);

END;
Aufgerufen wird das ganze wie folgt:
Delphi-Quellcode:
PROCEDURE TLagerForm.Button1Click(Sender: TObject);
VAR
  anzahl: integer;
BEGIN
  DuplicateCurrentRecord(Lagerquery);
  Lagerquery.Post
END;
Habe die Anleitung aus der Library genaustens befolgt, habe auch schon versucht, die Anzahl der Datensätze auslesen zu lassen und dann diesen Wert (erhöht um 1) dem Primärschlüssel zuordnen zu lassen. Das hat auch nicht funktioniert. Genausowenig hab ich durch googlen etwas gefunden.
Wißt ihr einen Lösung des Problems?
MfG,
Overburn

franktron 18. Mär 2005 12:59

Re: Datensatz kopieren - Primärschlüssel will nicht
 
Währe es nicht besser und schneller den Datensatz per SQL zu Kopieren

Overburn 18. Mär 2005 13:01

Re: Datensatz kopieren - Primärschlüssel will nicht
 
Hallo!
Wie geht das?
MfG,
Overburn

Overburn 22. Mär 2005 09:45

Re: Datensatz kopieren - Primärschlüssel will nicht
 
Hallo!
Hat sich erledigt. Hab es jetzt mit:
SQL-Code:
 INSERT INTO...
gelöst. Also genau wie franktron es gesagt hat. :-)

MfG,
Overburn


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 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