Igen, vacilláltam is rajta, hogy mi legyen a motor. Aztán sql-t kidobtam a kosárból, mégpedig azért, hogy bármelyik gépre telepíthető legyen egyszerűen, gyorsan. Ezért eccerű számlázó a neve.
Ha sql lenne, akkor szegény műfordító (pl) megsem tudna moccanni valakinek a segítsége nélkül, nem?
Ez így jóval "rugalmasabb", kibontja, beállítja, oszt kész.
Redundancia: Direkt nem akartam. Igazából jól elfér, kezelhetőek az adatok így is. Sztem, ennél sokkal nagyobb és összetettebb adatbázisoknál érdemes külön erőforrást beletolni a redundáns adatok kezelésébe, itt és most csak feleslegesen bonyolította volna a kódot.
"Bár a kódot nem néztem, de ha jól vettem észre a számlaszámot már előre kiosztod a számlának. Ez nem a legcélszerűbb mivel, ha hiba történik az adatok rögzítésénél akkor a számlaszám már felhasználásra kerül és mivel nincs tranzakció kezelésed nem tudod visszagörgetni. Pl. hozzáadsz egy tételt a számlához, de nem a készre nyomsz, hanem kilépsz a programból, a számla meg ottmarad."
A számlaszán NEM íródik be az adatbázisba feleslegesen ilyenkor még, csak "át van nyújtva" a részére, hogy nesze, itt van :). Villanykimaradás esetén nem fog elszállni a számlaszám a levegőbe, hiszen fizikailag, a számla.dbf-be nem íródik be, csakis a számla nyomtatása előtt közvetlenül.