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

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 7401
  • Karma: 44
    • Verze Delphi: W11 + D11.3.1
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.
Win11 64b, Delphi 11.3.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 7401
  • Karma: 44
    • Verze Delphi: W11 + D11.3.1
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ť :'(
Win11 64b, Delphi 11.3.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 7401
  • Karma: 44
    • Verze Delphi: W11 + D11.3.1
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.
Win11 64b, Delphi 11.3.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 7401
  • Karma: 44
    • Verze Delphi: W11 + D11.3.1
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 :)
Win11 64b, Delphi 11.3.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.