![]() |
Datenbank: SQL Server • Zugriff über: ADO
Datansatz alle Felder kopieren
Hallo,
wie kann ich alle Felder eines Datensatzes kopieren und in einen bereits bestehenden Datensatz kopieren ? Ich möchte keinen neuen Datensatz anfügen, sondern die Feldinhalte sollen wie gesagt in den bestehenden Datensatz kopiert werden ? |
Re: Datansatz alle Felder kopieren
Wie wärs denn mit einem Array of variant, in das Du alle Feldinhalte reinschreibst und in den anderen Satz überträgst?
|
Re: Datansatz alle Felder kopieren
Hai needatip,
ich stelle ersteinmal die Frage nach dem Sinn der Aktion ;-) Wenn Du zwei exakt gleiche Datensätze in der Tabelle hast kannst Du diese auch nicht mehr selektiv abfragen da es ja keinen Unterschied gibt. Du hast also zweimal die selben Daten in der Tabelle und kannst doch nichts damit anfangen. |
Re: Datansatz alle Felder kopieren
Nein, es sind keine Datensätze mit gleichen Feldinhalten.
Ich möchte lediglich beim Eintrag eines bestehenden Datensatzes erreichen, dass nicht alle Felder erneut eingegeben werden müssen, sondern dass nur nach dem Kopieren der Felder ein paar abgeändert werden müssen. |
Re: Datansatz alle Felder kopieren
Zitat:
Zitat:
Ein bestehender Datensatz wird ja in der Tabelle nicht eingetragen. Dieser wurde schon eingetragen. Gerade beim formulieren einer Frage zum Thema "programmieren" ist es sehr wichtig das Problem so zu beschreiben das es "jeder" verstehen und nachvollziehen kann. Beschreibe doch mal was aus der Sicht des Anwenders passieren soll. Dann finden wir sicher auch eine Lösung für dich als Entwickler. |
Re: Datansatz alle Felder kopieren
Kann ich das so in etwa machen ?
Delphi-Quellcode:
..und wie kriege ich dann die Felder in den bestehenden Datensatz ?
var
Felder: array of variant; i : integer; FAnzahl : integer; begin FAnzahl := Table1.fields.count -1; for i := 0 to FAnzahl do Felder[i] := Table1.fields[i].value; end; Geht es vielleicht auch mit SQL ? |
Re: Datansatz alle Felder kopieren
Also nochmals ganz von vorne.
Ich möchte Daten in eine Tabelle eintragen, die ca. 100 Datenfelder hat. Ein anderer User trägt vorab nur die wichtigsten Daten in einen neuen Datensatz ein. Dieser Datensatz wird dann schon mal in die Datenbank geschrieben. Nach einer gewissen Zeit werden dann weitere Daten gesammelt. Da nun Datensätze mit ähnlichen Daten vorkommen, sollen die Felder halt eben in den nächsten, aber bereits bestehenden Datensatz kopiert werden. Das soll halt Tipparbeit oder Kopierarbeit sparen ! |
Re: Datansatz alle Felder kopieren
Gehen wir mal von Table1 (Dataset1) aus und die hat ein Feld Name. Dieser Name soll in Table2 (Dataset2) rein und zwar von allen Datensätzen. Ist das richtig ?
Also brauche ich zumindest alle Namen aus Table 1 :
Delphi-Quellcode:
Somit stehen die Daten bereit und ich gehe sie durch :
Dataset1.close;
Dataset1.SelectSQL.Text := 'SELECT NAME FROM TABLE1'; // oder * für alle Dataset1.open;
Delphi-Quellcode:
Dataset1.First;
while not Dataset1.EOF do begin Dataset2.Insert; // Daten einfügen und in DB Trigger für AutoID anlegen ! Dataset2.FieldByName ('Name') := Dataset1.FieldByName ('Name'); ... notfalls andere Felder auch noch besetzen Dataset1.Next; end; |
Re: Datansatz alle Felder kopieren
Hab ich verstanden. Ich möchte aber die Feldinhalte vom aktuellen Datensatz kopieren, dann zu einem bestimmten Datensatz gehen und dann diese Feldinhalte in diesen Datensatz einfügen.
|
Re: Datansatz alle Felder kopieren
Was verstanden ? Sieht eher nach unvollständigem SQL-Wissen aus. Ich würde mich in der Richtung mal etwas schlauer machen. 8) Soll nur ein DS gesucht werden, dann muß WHERE her. Und dann geht es wie gesagt weiter :
Delphi-Quellcode:
Dataset1.close;
Dataset1.SelectSQL.Text := 'SELECT NAME FROM TABLE1 WHERE ...'; // oder * für alle Dataset1.open;
Delphi-Quellcode:
Dataset2.FieldByName ('Name') := Dataset1.FieldByName ('Name');
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 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