Autor Téma: FreeAndNil(Query) - nezničí ho  (Přečteno 441 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4404
  • Karma: 39
    • Verze Delphi: XE7 professional
FreeAndNil(Query) - nezničí ho
« kdy: 12-04-2019, 10:30:09 »
Kód: [Vybrat]

procedure TfrmRenumber.RoomsCopy;
begin
    dtmdMain.fdtrPoBesUpdate.StartTransaction;
    CopyRoom;
    CopyRenameRoom;
    CopyPerson;
    CopyData;
    CopyUpdateTree;
    dtmdMain.fdtrPoBesUpdate.Commit;
end;
V jednotlivých funkciách si vytváram lokálne Query. Pokiaľ sú typu UPDATE, tak sa vo funkcii FreeAndNil nezničia.
Predpokladám, že to je zapríčinené/spojené s nepotvrdenou transakciou.
Je môj predpoklad správny? Ak áno, ako to mám správne riešiť?
Viem to urobiť tak, že Query nebudú lokálne vo funkciách a tu uvedenú funkciu rozšírim o ich zničenie.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4404
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:FreeAndNil(Query) - nezničí ho
« Odpověď #1 kdy: 12-04-2019, 13:39:13 »
Podľa všetkého je predpoklad zlý. Zrada je niekde inde ale neviem ju nájsť :'(
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4404
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:FreeAndNil(Query) - nezničí ho
« Odpověď #2 kdy: 12-04-2019, 14:21:16 »
Tak som to konečne našiel. Volal som funkciu, kde si vytváram, ale neničil som Qry.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4404
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:FreeAndNil(Query) - nezničí ho
« Odpověď #3 kdy: 13-04-2019, 09:28:09 »
Excellent
Rated 1 time
Citace
Jinak doufam, ze je poslany vynatek kodu jen ukazkou,
Samozrejme.
Ďakujem za vysvetlenie. Tak nejako som si to predstavoval. Len mi to dlho trvalo, kým som našiel chybu. Tam som ju totiž ani nehľadal :)
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.