Autor Téma: Foreign key reference target does not exist - lebo som ešte nevolal Commit  (Přečteno 245 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2874
  • Karma: 27
    • Verze Delphi: XE7 professional
Kód: Delphi [Vybrat]
  1.   FHotDB.Table.Insert;
  2.   FHotDB.PostRec(False);
  3. //  FHotDB.Table.Refresh; To samozrejme nezaberá.
  4.   SaveSUBACCOUNTS_FLAT;
  5.  
  6. procedure TSubAccount.SaveSUBACCOUNTS_FLAT;
  7. ...
  8.   FqrySUBACCOUNTS_FLAT_IU.SQL.Text := 'UPDATE OR INSERT INTO SUBACCOUNT_FLAT (IDSUBACCOUNT_FLAT, FKFOCS, FKFLATS,'+
  9.     ' FKSUBACCOUNTS, ISSUBACCOUNT)'+
  10.   ' VALUES (:IDSUBACCOUNT_FLAT, :FKFOCS, :FKFLATS, :FKSUBACCOUNTS, :ISSUBACCOUNT)'+
  11.   ' MATCHING (IDSUBACCOUNT_FLAT, FKSUBACCOUNTS)'+
  12.   ' RETURNING IDSUBACCOUNT_FLAT';
  13. ...
  14.   FqrySUBACCOUNTS_FLAT_IU.ParamByName('FKSUBACCOUNTS').AsInteger := PKSUBACCOUNTS; // Je tu správna nová hodnota.
  15.   FqrySUBACCOUNTS_FLAT_IU.ExecSQL;
  16.  
Oznam
transaction violation of FOREIGN KEY constraint "FK_SUBACCOUNT_SUBACCOUNT" on table "SUBACCOUNT_FLAT"
Foreign key reference target does not exist

Ja vidím nalsedovný postup.
Kód: Delphi [Vybrat]
  1.   try
  2.     SaveSUBACCOUNTS_FLAT;
  3.     FqrySUBACCOUNTS_FLAT_IU.Transaction.Commit;
  4.     FHotDB.Table.UpdateTransaction.Commit;
  5.   except
  6.     FqrySUBACCOUNTS_FLAT_IU.Transaction.Rollback;
  7.     Vymazať z tabuľky práve pridaný záznam
  8.   end;
  9.  
Ide to aj ináč? Bez toho výmazu.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Datový typ v Delphi, který má True a False: