![]() |
Datenbank: access • Version: 2000 • Zugriff über: ADO
Datensatz in einer Tabelle kopieren
Moin. Ich habe folgendes Problem. Ich möchte Datensatze in einer Tabelle kopieren. Ich habe auch schon was zusammengebastelt aber das funktioniert. Sprich es wird nichts kopiert.
Delphi-Quellcode:
damit möchte ich den aktuellen datensatz kopieren, wobei das erste feld ein autofeld ist und das zweite feld entsprechend geändert werden kann. Der neue Datensatz wird ja auch richtig eingefügt (ds.InsertRecord) aber es werden keine Daten kopiert. Ich hab am Ende auch schon ein Post versucht, aber dann kommt nur die Meldung "Die zum aktualisieren angegebene zeile wurde nicht gefunden. Einige Werte wurde seit dem letzten Lesen ggf. geändert"
function TForm1.CopyVorgang(ds : TADODataSet; akte: string):boolean;
var fields : array[0..20] of Variant; i : integer; begin for i := 0 to ds.FieldCount -1 do fields[i] := ds.FieldList[i].AsVariant; ds.InsertRecord([nil,akte]); ds.Edit; for i := 2 to ds.FieldCount-1 do ds.FieldByName(ds.FieldList[i].FieldName).AsVariant := fields[i]; // oder ds.FieldList[i].AsVariant := fields[i] ds.Post; end; Gruß tr909 |
Re: Datensatz in einer Tabelle kopieren
Geht das nicht auch unter Access einfach so...
SQL-Code:
Gruss
INSERT INTO tabelle
SELECT * FROM tabelle WHERE id = ??? Thorsten |
Re: Datensatz in einer Tabelle kopieren
@omata
Das ist ja auch ne feine Sache. Man lernt ja nie aus *freu* Nur leider geht es in diesem Fall nicht, da eine zeile einen Primärschlüssel enthält, der durch das * from tabelle mit kopiert wird, und dadurch doppelte Werte erzeugen würde. Aber auf jedenfall ist es so schon mal einfacher als 20 mal mit FieldByName, etc Trotzdem würde ich auch gerne wissen wo der Fehler in meiner obigen Kontruktion liegt. Gruß und Dank tr909 |
Re: Datensatz in einer Tabelle kopieren
Sorry, das ich nochmal nerve...
SQL-Code:
spalte1 = PK
INSERT INTO tabelle (spalte1, spalte2, spalte3)
SELECT 2 AS spalte1, spalte2, spalte3 FROM tabelle WHERE id = 1 Gruss Thorsten |
Re: Datensatz in einer Tabelle kopieren
|
Re: Datensatz in einer Tabelle kopieren
Zitat:
habe nur bei
Code:
for i := 0 durch for i := 1 ersetzt, so wir der Primärschlüssel nicht mitkopiert.
// Copy the Record to the Array
for i := 0 to max do Data[i] := aDataSet.fields[i].value; Besten Dank. tr909 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 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 by Thomas Breitkreuz