Einzelnen Beitrag anzeigen

Pro_RJ

Registriert seit: 16. Apr 2008
146 Beiträge
 
#9

AW: Firebird Fehlerhaftes Returning

  Alt 8. Mär 2012, 14:00
Da bin ich mir absolut relativ sicher da der Datensatz Serverseitig den richtigen Zähler hat.

ich kann das ganze sehr einfach und sicher prüfen:
Es handelt sich hier um eine schnittstelle. diese Daten werden im 1. Schritt in eine Zwischentabelle gespeichert. "TBL_A". Anschliesend wird diese Eingefügte Datenmenge in einer Schleife durchgearbeitet und diese erzeugt zusätzliche Daten "TBL_B"

der Ablauf ist (schematisch Dargestellt) folgender:
Delphi-Quellcode:
Transaction Starten;
While not TBL_A.Eof do
Begin
  INC(I);
  IBSQL.CLose;
  IBSQL.SQL.Text := 'Insert into TBL_B(Nr) values (' + IntToStr(TBL_a.FieldByName('Zaehler').asINteger) + ') returing Zaehler';
  IBSQL.Execsql;

  Zaehler := IBSQL1.FIeldByName('Zaehler').asNteger;
  IBSQL.CLose;
  IBSQL.SQL.Text := 'Update TBL_A set FremdID = ' + IntToStr(Zaehler) + ' where Zaehler = ' + IntToStr(TBL_a.FieldByName('Zaehler').asINteger);
  IBSQL.Execsql
  TBL_A.Next;
end;
Transaction Commit;
Das heist das es pro TBL_A Datensatz auch einen TBL_B Datensatz geben muss (1=1 Verbindung).
In TBL_A speichere ich mir den neuen Zaehler aus TBL_B und in TBL_B steht der Zaehler aus TBL_A.

Jetzt ist ab und zu mal das Problem, das in TBL_A UND TBL_B ein Datensatz vorhanden ist. In TBL_B steht ein Zaehler aus TBL_A aber in TBL_A ist das Feld Fremd_ID 0 und das Kann einfach nicht sein.

Geändert von Pro_RJ ( 8. Mär 2012 um 14:08 Uhr)
  Mit Zitat antworten Zitat