Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#19

AW: FireDAC : Trigger geht nicht

  Alt 4. Sep 2015, 23:33
Sicher, dass die 101 noch nicht da ist?

Ausgehend von den Quelltextfragmenten, kann es die 101 nur einmal geben.

Zumindest gehe ich mal davon aus, dass du da eine For-Schleife mit sowas wiefor i := 0 to n hast. Wenn dem so ist, warum wird dann nicht schon bei Nr. 100 gemoppert?

Wenn i bei 1 beginnt, hieße das aber, dass bereits der erste Satz als Schlüsselverletzung angesehen wird. Dies erscheint mir dann aber doch ziemlich schräg, könnte aber bedeuten, dass irgend etwas konfigurationstechnisch dafür sorgt, dass jeder Datensatz mindestens zweimal (aus Sicht der Datenbank) dort ankommt.

Was passiert, wenn Du (vorerst) nach jedem Satz mal ein Commit machst? Quasiif i mod 1 = 0 then begin Zumindest müsstest Du bei einem satzweisen Commit ja dann nachschauen können, ob schon 'ne 101 da ist. Wenn nicht, dann muss das Problem bei FireDac liegen.

Eventuell könntest Du den Quelltext mal ein bisserl umbauen:
Delphi-Quellcode:
DM.DS.Insert;
DM.DS.FieldByName('NR').AsInteger := i + 100;
DM.DS.FieldByName('BEZ').AsInteger := i;
try
  DM.DS.Post;
except
  on e : Exception do begin
    DM.DS.Cancel;
    mem1.Lines.Add(Format('i = %d - %s'[i,e.Message]));
  end;
end;
Wie oft bekommst Du hier i = 1 zu sehen? Denn das müsste ja eigentlich zu dem Fehler führen.
Zugegeben sind mein Vorschläge gerade nur reines stochern im Nebel, darfst sie von daher gerne ignorieren

Geändert von nahpets ( 4. Sep 2015 um 23:35 Uhr) Grund: Rechtschreibung ist heut' nicht meins :-(
  Mit Zitat antworten Zitat