[ popmilan76 @ 25.10.2012. 14:26 ] @
Imam problem sa Paradox tabelama,kada radim sa njim,kao bazom na poslu,jeste da preko delphi formi ubacim podatke u tabele,i da se podaci sami od sebe izbrisu,neki put pod istom sifrom,neki put pod drugom sifrom,mislim na razlicite radnike koji se prijavljuju na taj komp....Da li je neko imao problema sa tim...i kako to resiti...Pozdrav
[ anon295157 @ 25.10.2012. 15:32 ] @
Izvinjavam se ali primetna je kolicina tvojih postova u vezi sa programom koji pravis. Za moj ukus, to je previse postova o jednoj relativno nezanimljivoj, uskoj temi. Koncept je da se pomogne tamo gde 'zapne' a ne da se od nule korak po korak napravi ceo program.
[ popmilan76 @ 25.10.2012. 15:39 ] @
Izvinjavam se ako sam dosadan,mada ima ljudi koji mi zahvaljuju na besplatnim,open source programima koje postavljam,sve sto saznam,ja i podelim sa vama,nema tu nikakvog komercijalizovanje,,I jos nesto,negde sam procitao da se stavlja kod u afterpost event da bi bilo upisano u bazu sigurno i kod ide ovako:

table1.FlushBuffers;



ili


table1.FlushBuffers;
table1.Refresh;
[ savkic @ 26.10.2012. 13:16 ] @
> komercijalizovanje,,I jos nesto,negde sam procitao da se stavlja kod u afterpost event da bi bilo upisano u bazu sigurno i kod ide ovako:
> table1.FlushBuffers;

Paradox tj. BDE kešira te podatke u memoriji pa ih tek posle doista upisuje na disk. Ako će više korisnika istovremeno koristiti tabele (sa raznih računara), jedini način da se promene vide kod svih je upotreba FlushBuffers posle svake izmene. Ako se program koristi samo na jednom računaru onda je dovoljno FlushBuffers ubaciti negde prilikom zatvaranja programa, uništavanja dataseta i slično.

> table1.FlushBuffers;
> table1.Refresh;

Refresh je ovde mislim višak jer su ove izmene već u memoriji tog programa. Refresh (ili Close/Open) će trebati sa drugih računara da se pozove ako se program koristi na više njih istovremeno, pa kada jedan izmeni podatke da i drugi mogu videti izmene. Sam Paradox/BDE nema mehanizam da ostale korisnike obavesti da je došlo do neke izmene tako da ti moraš taj deo obezbediti.
[ popmilan76 @ 26.10.2012. 19:04 ] @
Hvala,Savkicu,mada nea i refresh,zlu ne trebalo....Pozdrav
[ mrceski @ 27.10.2012. 12:02 ] @
Ja sam to resio sa ovim naredbom:

procedure TableIspratnica1AfterPost(DataSet: TDataSet);
begin
DbiSaveChanges(TableIspratnica.Handle);
end;

So ovim direktno ide u hard disk , a ne u buffer.
Vec nekoliko godina radi odlicno.
Za svaka tabela dodadi ovu naredbu.
[ popmilan76 @ 27.10.2012. 12:57 ] @
Ali ta komanda nema u delphiju 3,bar je ja ne vidim...dok ova flashbuffer ima,koliko sam uspeo da nadjem na netu te dve komande su iste,mislim obavljaju isti zadatak...Pozdrav
[ savkic @ 27.10.2012. 13:56 ] @
>> DbiSaveChanges(TableIspratnica.Handle);

>> So ovim direktno ide u hard disk , a ne u buffer.

FlushFileBuffers Interno poziva DbiSaveChanges tako da je manje više svejedno šta ćeš.

> Ali ta komanda nema u delphiju 3,bar je ja ne vidim...dok ova flashbuffer ima

Tu je, samo u drugom unitu.