![]() |
AW: FireDac CopyDataSet kopiert nicht den PK
Zitat:
|
AW: FireDac CopyDataSet kopiert nicht den PK
Hallo Uwe,
ich konnte jetzt nachstellen das die Ursache wie du schon sagtest nicht CopyDataSet ist sondern FireDac und dessen Query. Ich habe in meinem Code nachgeschaut wo ich CopyDataSet verwende. Es ist immer so das ich ein DataSet über einen DataSnap Server bekomme und diesen in einer MemTable oder direkt verarbeite. Ich schreibe also nie über die Query in die DB. Deshalb hat es bis jetzt funktioniert. Dass die Query mein übergebener PK einfach ignoriert war mir nicht klar. Ich habe all die Jahre IBO verwendet und da ist es nicht so. Wenn ich ein PK(AutoInc) Feld ein Wert übergebe, wird dieser auch zur Datenbank transportiert, ansonsten feuert er selbst den Generator unmittelbar vor dem Schrieben in die DB. Das war jetzt für mich eine sehr sehr wichtige Lehrstunde. Tausend Dank nochmals Uwe.
Delphi-Quellcode:
function TForm1.MyCopyDataSet(Qu,Zi:TFDQuery):Boolean;
var n:Integer; begin Qu.First; while not Qu.Eof do begin Zi.Insert; for n:=0 to Qu.FieldCount-1 do begin Zi.FieldByName(Qu.Fields[n].FieldName).value := Qu.Fields[n].value; end; Zi.Post; Qu.next; end; result:=true; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:23 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