Sleduji tohle téma od jeho začátku a pořád jsem přemýšlel, jestli se mám zúčastnit nebo ne, protože tazatel je tady už tak trochu známý tím, že o co méně věcem rozumí, o to více se do nich nadšeně pouští (nemyšleno nijak zle či útočně, prostě jen suché konstatování) a také proto, že mu postupně stejně někdo řekl něco podobného. Nicméně nakonec jak vidno jsem se rozhodl také přispět, snad to k něčemu bude...
1. Na potřebnou úlohu vystačí v podstatě jakýkoli běžný PC nejen dnešní, ale klidně pár let starý a bude se to po většinu času nudit a přitom to nemusí to být Xeon, Threadripper či EPYC v big toweru se SAS diskama, velkým množstvím RAM a kdo ví čím ještě - ovšem za předpokladu...
2. ...že bude
správně (jak tady kolegové už porůznu psali):
a) namodelovaná databáze (indexy, relace mezi tabulkama, transakce ap., a to raději ve výčtu nezmiňuji pokročilejší věci jako jsou pohledy, triggery, procedury, eventy...)
b) zvolený DB engine (ne takový, co neumí uzamknout konkrétní řádek v tabulce, ale jen celou tabulku a navíc relace "emuluje", protože neumí cizí klíče ap.)
c) udělaná aplikace (umět pracovat se zámky - což není to co děláš ty, že si vytváříš vlastní semafory o rozpracovaných datech - relacemi, indexy ap.)
...
nezamykam databazi pouze dany zaznam v tabulce ucty, doud neni editace hotova, dam do lock_id id stanice, na kterem se s ni pracuje
Ale ano, zamykáš, viz:
117 kasa 10.0.0.72:49716 pokladna Query 0 Waiting for table level lock UPDATE ucty SET lock_id = 0 WHERE lock_id = 10 0.000
bylo by fajn, kdyby sis to co ti vyplivlo sledování procesů v mysql aspoň pořádně přečetl, viz "...table level lock...", ale mám z tebe pocit, že máš nějakou selektivní slepotu, protože i když ti to napsali jasně posléze i jiní, tak ty pak přesto napíšeš něco takového:
nezamykam databazi pouze dany zaznam v tabulce ucty, doud neni editace hotova, dam do lock_id id stanice, na kterem se s ni pracuje
MyISAM neumí row locky, zamyká celou tabulku.
tim lockem myslim to, ze kdzy jeden pingl otevre ucet tak do policka ucty.lock_id dam id stanice a kdyz ucet ulozi, tak dam SET lock_id = 0
...možná by sis měl před tím, než něco napíšeš nastudovat něco k tomu, co ti ostatní radí, v tomto případě co je to zamykání v DB (a to tvé vyplňování políček s ID stanice to fakt není) a k tomu taky jak to funguje v Delphi, protože zjevně vůbec netušíš, že ti to v té aplikaci automaticky zamykají ty použité objektové komponenty pro práci s DB, které jsi v Delphi myší přetáhl do návrhu aplikace, aniž bys chápal, jak taková komponenta funguje a pracuje a jak ji pořádně ovládat a používat. Holt daň za "klikací"
RAD.
A když vidím tohle:
nedokazu si predstavit, jak to lze udelat jinak
nebo
nedovedu si predstavit jak resit kdyz na 2 stancichn otevrou stejny ucet a na kazde prida 2x gulas
tak to dává tušit, jak asi ta aplikace a celé řešení vypadá...
ono totiz kdyz sectete ignoraci normoHosta blbost standartPingla a tupost OslaKuchare dstanete nebezpecne vybusny koktejl :-|
obzvlášť, když je tahle "rovnice" umocňována předváděnou neschopností řešitele, že?
Myslíš, že se nedá udělat relativně blbovzdorná aplikace, která vliv normoHosta, standardPingla a OslaKuchare sníží limitně k nule a nebude na to zároveň potřeba velmi nadstandardně vybavený HW?