Delphi - firebird -rekord lock

Ez a téma lezárásra került a moderátor által. A lezárás oka: 1 téma - 1 kérdés
Delphi - firebird -rekord lock
2015-06-15T22:48:15+02:00
2015-06-15T23:58:43+02:00
2022-12-02T14:45:36+01:00
fox63
Sziasztok,

Delphi 7-ben, Firebird ab-ban megoldható a rekord lock valahogyan?

Köszi
Mutasd a teljes hozzászólást!
Sokszor csináltam már. Működik. Példaprogramra nincs szükség. Amit megadtam link-et, annak a legalján van "gondolatébresztő". Lényeg, hogy valamilyen SQL komponenst használj ehhez. A lock-olások számát lehetőség szerint igyekezz minél kevesebbre korlátozni. Érdemes a folyamatokat úgy megtervezni, hogy a konkurens feldolgozások minél kisebb számban fordulhassanak elő. Arra különösen figyelj, hogy a zár a tranzakció végéig él! A zárakkal nagyon körültekintően kell bánni, mert könnyen deadlock lehet a vége!
Mutasd a teljes hozzászólást!

  • Igen megoldható.
    RTFM
    Mutasd a teljes hozzászólást!
  • Köszi öreg Sharky, ez alapján próbáltam, de valahogy nem igazán jött össze. Van ebben tapasztalatod? Milyen TPB mode javallott beállitani? ...
    Nincs véletlen a fiókban valahol 1 példa progi?

    Köszi
    Mutasd a teljes hozzászólást!
  • Sokszor csináltam már. Működik. Példaprogramra nincs szükség. Amit megadtam link-et, annak a legalján van "gondolatébresztő". Lényeg, hogy valamilyen SQL komponenst használj ehhez. A lock-olások számát lehetőség szerint igyekezz minél kevesebbre korlátozni. Érdemes a folyamatokat úgy megtervezni, hogy a konkurens feldolgozások minél kisebb számban fordulhassanak elő. Arra különösen figyelj, hogy a zár a tranzakció végéig él! A zárakkal nagyon körültekintően kell bánni, mert könnyen deadlock lehet a vége!
    Mutasd a teljes hozzászólást!
  • Bocsi, de még kezdő vok ebben.

    Te milyen TPB paramétereket állitasz be:
    read_committed
    rec_version
    nowait

    IBquery-t használok. igy nem olvas be semmit, miért? a "for..." nélkül igen.
          tabla.Close;
          tabla.SQL.Clear;
          x:='select * from termeles where sorsz='+rek_sorsz+' for update with lock';
          tabla.SQL.Add(x);
          tabla.Open;

    ha másik gépről inditják ugyanezen rekord módositását, akkor honnan derül ki, h zárolt?
    Mutasd a teljes hozzászólást!
Ez a téma lezárásra került a moderátor által. A lezárás oka: 1 téma - 1 kérdés
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd