[ captPicard @ 15.07.2009. 11:55 ] @
Googlao sam, ali ništa korisno nisam pronašao.

Dakle, kod otvaranja dataseta (FIBPlus) se događa navedena greška. Zanimljivo je da se u 90% slučajeva javlja kada dataset vraća samo jedan rezultat (jednu vrijednost). Ali ne uvijek i ne uvijek na istom dataset-u. Aplikacija radi u mreži od 10-ak računala. Delphi 7 je u pitanju.

Da li je netko imao sličnih problema?

Hvala!
[ Rapaic Rajko @ 15.07.2009. 21:03 ] @
Da li imas calculated fields i OnCalcFields?

Proveri to, kao i sve event-e na dataset-u. Otkaci ih sve, pa jedan po jedan aktiviraj. Verovatno negde imas nezeljenu rekurziju.
Cesta greska je pozivanje metode unutar event-a koja povlaci ponovno ulazenje u isti event, i eto karambola. Remuj sve metode nad dataset-om unutar event-a (tipa Refresh ili slicno), pa uporno pokusavaj.
Zaboravih da li FIBPlus ima BeginUpdate/EndUpdate metode; pokusaj i sa tim (procitaj sta je, ako nisi).

Rajko
[ captPicard @ 16.07.2009. 07:26 ] @
Rajko hvala, ali...

Problem je da se taj memory leak dešava na

Code:
Dataset.Open;


i ne uvijek na istom dataset-u, pa čisto sumnjam da je problem u CalcFields, ali niti ih nema. Nema nikakve obrade podataka, učitava se podatak i dodjeljuje se vrijednost varijabli nakon toga...
[ savkic @ 16.07.2009. 11:59 ] @
Verovatno je to samo neka generička greška, nešto drugo se dešava (ne može da otvori neki handle npr) a ne trošenje čitave memorije. Ako imaš source pogledaj gde se tačno dešava exception i potraži da li postoji update komponenti, ako ne, pokušaj da napraviš neku test bazu sa kojom se to može ponovoti pa pošalji prijavu buga.
[ captPicard @ 16.07.2009. 12:44 ] @
Citat:
savkic: Verovatno je to samo neka generička greška, nešto drugo se dešava (ne može da otvori neki handle npr) a ne trošenje čitave memorije. Ako imaš source pogledaj gde se tačno dešava exception i potraži da li postoji update komponenti, ako ne, pokušaj da napraviš neku test bazu sa kojom se to može ponovoti pa pošalji prijavu buga.


A i meni se čini da je to neki bug. Ali opet mi nije jasno da se to dešava samo kod jednog korisnika, a kod svih ostalih radi normalno... A najveći problem je da ja ne mogu nikako ponoviti tu grešku... Ako otkrijem nešto, javim.
[ Rapaic Rajko @ 16.07.2009. 14:27 ] @
Hmmmm... je li to Firebird?

Ako da, proveri da li su identicne instalacije Firebird klijenta na svim masinama. Cesta greska je brkanje/mesanje verzija 1.5 i 2.1 itd.itd. Problem hoce da prave (ne?)kompatibilne biblioteke gds32.dll i fbclient32.dll. Takodje postoje i podesavanja FB-a prilikom instalacije (classic vs. superserver)...

Primer: cesto se desava ovde u firmi da firebird backup sa jedne masine ne moze da se restore-uje na drugoj masini. U jednom trenutku su se verzije "usarenile" i to sad radi tako... ali stvarno nemamo tezih problema.

Jos samo ovo: da li je pomenuti dataset "meso" za neku vizuelnu kontrolu, recimo cxGrid? I to u momentu otvaranja (dataset.Open)?

Evo jos jedan detalj: TIBQuery recimo ima jedan poznati bug, a to je da spregnut sa cxGrid-om, prilikom fetch-ovanja iole vece mase podataka/recorda izbacuje upravo "out of memory". Ukoliko taj isti query otvorimo bez kontrole (otkacimo grid), sve radi ok. Ima li tu paralele sa tvojim problemom... nisam pametan.

Rajko
[ captPicard @ 16.07.2009. 16:11 ] @
Citat:
Rapaic Rajko: Hmmmm... je li to Firebird?

Kao prvo, Rajko, hvala na trudu! Je, Firebird.
Citat:

Ako da, proveri da li su identicne instalacije Firebird klijenta na svim masinama. Cesta greska je brkanje/mesanje verzija 1.5 i 2.1 itd.itd. Problem hoce da prave (ne?)kompatibilne biblioteke gds32.dll i fbclient32.dll. Takodje postoje i podesavanja FB-a prilikom instalacije (classic vs. superserver)...

Dobra ideja, to ću provjeriti, makar mislim da su iste verzije, jer je istovremeno instalirano.
Citat:

Primer: cesto se desava ovde u firmi da firebird backup sa jedne masine ne moze da se restore-uje na drugoj masini. U jednom trenutku su se verzije "usarenile" i to sad radi tako... ali stvarno nemamo tezih problema.

Jos samo ovo: da li je pomenuti dataset "meso" za neku vizuelnu kontrolu, recimo cxGrid? I to u momentu otvaranja (dataset.Open)?

Evo jos jedan detalj: TIBQuery recimo ima jedan poznati bug, a to je da spregnut sa cxGrid-om, prilikom fetch-ovanja iole vece mase podataka/recorda izbacuje upravo "out of memory". Ukoliko taj isti query otvorimo bez kontrole (otkacimo grid), sve radi ok. Ima li tu paralele sa tvojim problemom... nisam pametan.

Rajko


Je, jedan od tih datasetova koji "puca" je "meso" za grid (Delphi-ev TDBGrid). Ali jedan od tih datasetova nije "meso" za grid, samo vadi vrijednost polja iz baze (makar to lako promijenim u Query).

Da se to dešava na jednom datasetu, još bi nekako "razumio", ali buni me da se taj problem javlja kod više njih, ne uvijek i na različitim mašinama. U 90% slučajeva je to uvijek jedan te isti dataset, a broj ds-ova kod kojih se to javilo do sada je cca 4.

Još jednom hvala na trudu! Provjeriti ću verzije servera, pa javim da li je pomoglo.