Toon posts:

[DELPHI] insufficient memory

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi

Ik ben in delphi 6 een programma aan het maken met een paradox database. Nu krijg ik regelmatig de boodschap "unsufficient memory", ik heb deze boodschap nog al gehad in werkjes die ik op school maakte, maar hoe komt dat nu. ik "close" toch al mijn tabellen.

groetjes

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Wanneer krijg je die boodschap?
Krijg je dat tijdens het debuggen ofzo? Doe je veel 'stop debugging', maw, sluit je je applicatie regelmatig niet goed af als je aan het debuggen bent;
Geef je wel al het geheugen dat je gealloceerd hebt, en dat niet door de VCL automatisch vrijgegeven wordt, zelf vrij? etc...

https://fgheysels.github.io/


Verwijderd

Topicstarter
tijdens het debuggen ja, je hebt 2 standaarden in delphi, ik denk niet dat ik de vcl gebruik, maar die andere. kun je daar ook je geheugen vrijmaken en hoe doe je dat dan juist?

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Als je je applicatie stopt tijdens het debuggen dmv 'stop debugging' oid, dan wordt het geheugen niet vrijgegeven. Pas als je Delphi dan afsluit, wordt het geheugen vrij gegeven.
Dus: zoveel mogelijk de applicatie normaal laten stoppen.

En hoezo, je hebt 2 'standaarden' Delphi ? Wat bedoel je? De VCL is de Visual Component Library. Als je een Delphi applicatie maakt, met Forms, buttons, etc.... in D6, dan gebruik je volgens mij toch echt wel de VCL hoor.

https://fgheysels.github.io/


Verwijderd

Topicstarter
ja ik bedoelde die library, maar ik dacht, omdat ik in de help altijd hetgene koos waar vcl niet achter stond dat het een andere library was dan die ik gebruikte

  • Just_a_Gamer
  • Registratie: November 2001
  • Nu online
Je gebruikt dus CLX om zo eventueel om te porten naar Kylix omgeving. Alleen al omdat je Paradox gebruikt is dat niet meer mogelijk :)

Gebruik madexcept componenten (ff google search gebruiken) om zo eventueel extra debug info voor jou en voor ons :)

Verwijderd

'insufficient memory' is een vrij standaard foutmelding van de BDE (Borland Database Engine) die je gebruikt om in Delphi o.a. Paradox tabellen te benaderen. Net als 'not enough timers available', trouwens.

Wanneer je op een trial and error manier programmeert (iets wijzigen, test-run, oeps... doet 't niet, nog maar weer iets wijzigen) dan neemt de BDE je dat niet in dank af, en blijft 'ie stukken geheugen vasthouden.
Vanaf Delphi 4 is 't dan vaak voldoende om Delphi af te sluiten en opnieuw te starten, maar bij Delphi 2 (ik heb nog een paar flinke projecten die daarmee gecompileerd zijn...) betekent 't gewoon dat je je machine moet rebooten.

't Is een probleem dat Borland al jaren geleden had moeten oplossen, maar aan de BDE wordt nauwelijks meer ontwikkeld.

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Verwijderd schreef op 10 februari 2004 @ 20:51:
't Is een probleem dat Borland al jaren geleden had moeten oplossen, maar aan de BDE wordt nauwelijks meer ontwikkeld.
Dat probleem heeft volgens mij niet alleen met de BDE te maken, en is ook niet beperkt tot Delphi.
Als je in VS een project debugged, en je klikt daar dan ook een paar keer op 'stop debugging' (maw, je sluit je app. niet goed af), dan blijft ook VS brokken geheugen vasthouden.

https://fgheysels.github.io/


  • ProgrammerX
  • Registratie: Juli 2002
  • Laatst online: 26-02-2021
whoami schreef op 11 februari 2004 @ 00:00:
[...]


Dat probleem heeft volgens mij niet alleen met de BDE te maken, en is ook niet beperkt tot Delphi.
Als je in VS een project debugged, en je klikt daar dan ook een paar keer op 'stop debugging' (maw, je sluit je app. niet goed af), dan blijft ook VS brokken geheugen vasthouden.
Ja maar dit snap ik dan toch niet helemaal. Lijkt me toch niet zo moeilijk om in een lijstje alles bij te houden qua geheugen als ik mijn applicatie start om te debuggen. En of ik dan mijn applicatie stop door te zeggen 'stop debugging' (is dit dan hetzelfde als een ctrl+f2 'reset') of dat ik het op de 'normale' manier afsluit. In beide gevallen moet het geheugen toch worden vrijgegeven ?

Ik zal er wel weer te makkelijk over nadenken :)
Pagina: 1