Autor Téma: FireDAC - update  (Přečteno 224 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2870
  • Karma: 27
    • Verze Delphi: XE7 professional
FireDAC - update
« kdy: 14-05-2017, 20:35:01 »
Technika sa rozhodla, že ma pošle do blázninca >:(  Jednoduchá situácia:
Kód: Delphi [Vybrat]
  1.   qryDeposit_U.SQL.Text := 'UPDATE DEPOSITS SET AMOUNT = :AMOUNT WHERE IDDEPOSITS = :IDDEPOSITS';
  2.   qryDeposit_U.ParamByName('AMOUNT').AsCurrency := frmDepositList.oMakeDepositEdits.oblsListEdit[Idx].FloatValue;
  3.   qryDeposit_U.ParamByName('IDDEPOSITS').AsInteger := frmDepositList.oDeposit.FocusedData.IDDeposit[Idx];
  4.   qryDeposit_U.Transaction.StartTransaction;
  5.  
  6.   try
  7.     qryDeposit_U.ExecSQL;
  8.     qryDeposit_U.Transaction.Commit;
  9.   except
  10.  
Parametre sú v poriadku a šetko zbehne. Ak použijem verziu
Kód: Delphi [Vybrat]
  1. function ExecSQL(const ASQL: String; const AParams: array of Variant): LongInt; overload;
  2.  
tak mi vráti 1.
Ale tabuľka ostane nezmenená! V SQL manažéry to zbehne ako má. Nerozumiem tomu.
Kde mám hľadať chybu?
« Poslední změna: 14-05-2017, 20:37:52 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2870
  • Karma: 27
    • Verze Delphi: XE7 professional
Re:FireDAC - update
« Odpověď #1 kdy: 14-05-2017, 20:53:16 »
Keď som tam zo zúfalstva pridal ešte jeden Commit, tak sa zmena zapíše.
Kód: [Vybrat]
  try
    qryDeposit_U.ExecSQL;
    qryDeposit_U.Transaction.Commit;
    qryDeposit_U.Transaction.Commit;
  except
Ale to je hlúposť.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2870
  • Karma: 27
    • Verze Delphi: XE7 professional
Re:FireDAC - update
« Odpověď #2 kdy: 14-05-2017, 21:09:22 »
Tak už som to našiel. Na jednom mieste som použil pre SELECT transakciu pre update. A tak som mal transakciu už raz spustenú - aktívnu. A v uvedenom kóde som ju spustil/aktivoval ešte raz.
Prečo si v nedeľu nedám pokoj?
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: