U oba slucaja koja si naveo ide se preko zasebnih konekcija ...
Zapravo ta dva slucaja se ne razlikuju gotovo uopste osim lokacije na kojoj se nalazi exe fajl ...
Kad "vuces" exe sa server, postoji jedna prednost (koje mogu da se setim), a to je da update
izvrsnog koda u sistemu radis samo jednom a ne n puta (na svim radnim stanicama)
u slucaju da radis taj pristup:
1. Server sa bazom (bez ikakvog dodatnog koda)
2. Vise klijenata koji pokrecu kod (bilo odakle) i konektuju se na bazu
u tom slucaju bi trebalo da vodis racuna o tome da programiras tako da
unosi podataka imaju zastitu od medjusobne interakcije ... (ovo se postize u zavisnosti
od platforme na razlicite nacine)
recimo:
Program ne sme da "podrazumeva" da nesto od podataka postoji ako nije provereno ili da je u odredjenom
stanju ...
alternativno treba uvesti kvalitetnu kontrolu greske i omoguciti u specificnim slucajevima
da korisnik odreaguje na ispravan nacin ...
Poruke tipa "Podaci koje menjate vise ne postoje na serveru (neko ih je obrisao) ...."
ili "Podatak koji menjate je neko promenio u medjuvremenu da li zelite da ..."
recimo firebird (pretpostavljam da to koristis, jer je uobicajeno u kombinaciji sa delphi-jem)
ima sasvim lep mehanizam exceptiona, i eventova koje mozes da uposlis u tu svrhu ...
(definises svoje exceptione da znas sta ti baza javlja da ne moze - i aktiviras ih u triggerima,
a eventove isto aktiviras u triggerima da ti baza "javi" da je recimo neko menjao, dodavao ili brisao nesto
pa onda mozes da refresh-ujes stanje svojih tabela)
Postoji jos par arhitektura koje bi ti mogle biti interesantne...
Na primer takozvane n-tier arhitekture ...
U koje spada i sledeci slucaj
1. Server sa bazom podataka
2. Program na serveru koji ce da drzi jednu konekciju na bazu i da klijentima preko nekog mreznog protokola salje podatke
i da od njih prima podatke, obicno se ovde implementira i neki locking mehanizam ili nesto slicno (neko radi na unosu robe, ostali
moraju da cekaju da on zavrsi ili tako nesto) kao i deo "poslovne logike" sistema ... odnosno dodatna izracunavanja vezana za unete
podatke.
3. "Light" klijenti koji su manje vise samo unos i pregled podataka i oni ne komuniciraju direktno sa bazom nego sa "Server programom",
cak ljudi cesto i ne stavljaju u njih bilo kakvu obradu u ovom modelu nego se to vrsi centralizovano u "Server programu" ...
Ukoliko je u pitanju jednostavan projekat, ja bih ti preporucio da radis prvi pristup.
Drugi je po mom misljenju dosta komplikovaniji da se implementira za jednostavne projekte dok na slozenijim donosi dosta pogodnosti ...