Autor Téma: Transaction a MS Access  (Přečteno 1715 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6924
  • Karma: 44
    • Verze Delphi: W10 + D11.1
Transaction a MS Access
« kdy: 25-04-2022, 09:00:59 »
Chcem mať Access-e konzistentné údaje. Pri DB, ktorá podporuje transakcie (v mojom prípade FB), to nie je problém.
  • Transaction.StartTransaction
  • Table1.Post
  • Table2.Post
  • Transaction.Rollback, alebo Commit
Ako to vyriešiť pri Access-e?
Transakcie, presnejšie ich metódy StartTransaction a spol, nie sú podporované. Ani formou imitácie. Tým pádom, predpokladám, musím mať nastavené AutoCommit, AutoStar a AutoStop na True.
Druhým problémom je, že ak chcem získať nový primárny kľúč, tak musím použiť Pos. Ak v druhom kroku dôjde k chybe, tak mi ostane visieť mŕtvy záznam.
Win11 64b, Delphi 11.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 3215
  • Karma: 112
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:Transaction a MS Access
« Odpověď #1 kdy: 25-04-2022, 09:47:02 »
Excellent
Rated 1 time
>Chcem mať Access-e konzistentné údaje.

Jednoduche: tak nepouzivej Access. Nebo ho pouzivej v jednouzivatelskem modu a hodne se modli (stav tak pred 5 lety, ale pochybuji ze se to zmenilo).

Proc Access a ne treba SQLite?
Embarcadero MVP - Czech republic

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6924
  • Karma: 44
    • Verze Delphi: W10 + D11.1
Re:Transaction a MS Access
« Odpověď #2 kdy: 25-04-2022, 12:14:56 »
Citace
Proc Access a ne treba SQLite?
Pôvodom je to stará aplikácia a
  • Mám MS Office professional 2007. Tam je plná podpora Access-u. Vďaka tomu som pochopil základy a naučil  sa pracovať s DB. A získal nejaké zlé návyky :)  Nič strašné
  • Viem s ním robiť
  • Čo projekt, to nový mdb súbor
  • Prázdne mdb sú malé. Nemajú ani 1 MB. Taký FB je cez 5 MB
  • Netreba nič inštalovať, ani dodávať
  • SQLite som skúšal a nie je to pre mňa. Dátumy ma veľmi rýchlo presvedčili, aby som ho nechal na pokoji. Aj mi to bolo takto odporúčané ;)
Je to v jedno užívateľskom režime. Len niektoré akcie pracujú s viacerými tabuľkami. Nepredpokladám nejaké kolízie, mimo mňa, počas behu aplikácie.
Chcel som to mať na istotou. No, nevadí.
Win11 64b, Delphi 11.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3479
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Transaction a MS Access
« Odpověď #3 kdy: 25-04-2022, 13:20:16 »

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6924
  • Karma: 44
    • Verze Delphi: W10 + D11.1
Re:Transaction a MS Access
« Odpověď #4 kdy: 25-04-2022, 13:24:27 »
Ďakujem. Píšu tam od ver. 2013. Takže som mimo.
Win11 64b, Delphi 11.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.

Offline František

  • Guru
  • *****
  • Příspěvků: 867
  • Karma: 8
    • Verze Delphi: comunity 10.4.2, D2007, D11
Re:Transaction a MS Access
« Odpověď #5 kdy: 28-04-2022, 11:03:23 »
Excellent
Rated 1 time
ked ovladas firebird tak preco nie embeded

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6924
  • Karma: 44
    • Verze Delphi: W10 + D11.1
Re:Transaction a MS Access
« Odpověď #6 kdy: 28-04-2022, 12:16:36 »
Lebo 1 MB a 5 MB je v tomto prípade veľmi veľký rozdiel. Mne prešlo cez ruky vyše 400 - 450 projektov. To je 1 600 - 1 800 MB navyše. Úplne zbytočne.
Všetky projekty by mohli byť v jednom súbore. Podľa mňa je praktickejšie mať pre každý projekt samostatný súbor. Užívateľ môže s nimi narábať podľa ľubovôle. Môže si vytvárať kópie a experimentovať. Aj to bol dôvod pre MS Access.
Win11 64b, Delphi 11.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.

Offline miroB

  • Guru
  • *****
  • Příspěvků: 585
  • Karma: 17
    • Verze Delphi: D1,2,3,4,7,2005,2009, XE8,S,B,T10.2.2 Pro
Re:Transaction a MS Access
« Odpověď #7 kdy: 29-04-2022, 19:44:56 »
Ďakujem. Píšu tam od ver. 2013. Takže som mimo.
Ak použiješ napríklad možnosť:
https://www.microsoft.com/en-us/download/details.aspx?id=54920
Microsoft Access Database Engine 2016 Redistributable
tak budeš mať verziu MS Access Engine 2016.
Access enginu bez aplikácie MS Access, som používal dlhé roky.
Napriek faktu, že som mal adekvátny a kompletný MS Office od v. 2007 až po v. 2019 (pracoval som v školstve, takže sme mali oficiálne licencie)
Access engina zvláda aj drobné (ale užitočné) veci, čo samotná apka MS Access nie. Via Delphi, som používal ADO. Ale aj najrýchlejšie DAO. Funguje aj FireDAC. Ten tuším pristupuje k Access engine cez ODBC. (najhoršia možnosť)
ODBC je už deprecated - undepecated - deprecated. ADO undeprecated. A DAO ani neviem - rôzne politiky Microsoftu. Aj preto som už dávno u SQLite.
Tiež pre nekonečné množstvo ďalších výhod voči MS Access.
Nekonzistentnosť Microsoftu pri vývoji a údržbe MS Access je trestuhodná. Množstvá chýb, zmeny postojov. ODBC, ADO, DAO. Raz tak, inokedy presne naopak. Neošetrené chyby. Exporty do Excelu sú fantastiocké, ale stále nemajú opravené zásadné chyby. Tie chyby trvajú už roky. MS o nich vie,. ale hraje mŕtveho chrobáka..
PS: Tá Access Engina bola cca v časoch Windows 95 súčasťou operačného systému. Alebo možno aj XP.
« Poslední změna: 29-04-2022, 20:00:54 od miroB »

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6924
  • Karma: 44
    • Verze Delphi: W10 + D11.1
Re:Transaction a MS Access
« Odpověď #8 kdy: 29-04-2022, 20:51:28 »
Citace
Nekonzistentnosť Microsoftu pri vývoji a údržbe MS Access je trestuhodná
Žiaľ, to je pre MS viac ako typické. Najhoršie sú na tom užívatelia, lebo nemôžu vedieť čo ich čaká.
Výkon je posledné čo ma trápi.
Za odkaz ďakujem a pozriem sa naň. Neviem či mi to pomôže, lebo FireDAC. Ten si ide svoje. Teraz robili asi väčšiu záplatu na FireDAC. Uvidím
Áno, každý Windows už má v sebe MS Access engine. To je výhoda. Spomínal som to tu.

Win11 64b, Delphi 11.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.