27. februar 2003 - 13:29Der er
11 kommentarer og 1 løsning
access memory leak...
Jeg kører et program i java hvor jeg ligger data ind i databasen. Herefter lukkes databasen, og når jeg starter vil jeg slette det hele og ligge det ind igen. Dette kan jeg godt, og det kører...MEN Hvergang at jeg sletter hele databasen i starten, så bliver denne plads ikke deallokeret. Altså hvergang jeg starter programmet kommer det til at fylde mere og mere. Og til sidst får jeg en meddellelse når jeg prøver at connecte at databasen er corrupt...
Hvordan tømmer du databasen og hvordan lægger du nye data ind? Hvis du ikke får lukket din connection eller et evt. recordset, så kan du pludselig have mange connections åbne.
Nu kender jeg ikke så meget til Java, men i VB skal du afslutte med:
rs.Close Set rs = Nothing conn.close Set conn = nothing
arhh, du skrev bare "memory leak"...så jeg konkluderede at det var i 'memory'en' at den var gal. My bad ;o)
Hvis det er databasen, som vokser og vokser, så er det et generelt problem i Access, at den vokser. Dette kan kun løses ved at komprimere databasen med jævne mellemrum. Dertil kræves at Access er installeret. Du kan derfor ikke komprimere den alene med en java-kommando.
Lad venligst være med at afvise mit svar, når jeg har ret!
Du kan finde forskellige andre programmer, som kan komprimere en access-database. Men faktum er, at du er nødt til at 'koble den fra' i de sekunder, som den er om at komprimere. (hvis der er connections til databasen, kan du ikke komprimere)
Netop slette/indsæt-transaktioner er noget som får databasen til at vokse hurtigt, da den ikke selv kan slette det plads, hvor der før lå data. Er det nødvendigt at tømme databasen?
Ellers skal du benytte en database server som MS SQL eller MySQL, da disse styre dette bedre.
Når jeg nu fortæller dig, at du ikke kan ændre på en af de grundlæggende dele af en Access-database, så hjælper det dig da til at du kan tage stilling til om du har valgt den rigtige metode eller den rigtige platform til din applikation. Hvorfor skulle nogen ulejlige sig med at fortælle dig, at det fungere på den måde, hvis du alligevel ikke har tænkt dig at honorere svaret??
Det er generelt uhøfligt at afvise før alle forslag har været på bordet og du derudfra kan vurdere hvem, der har været til hjælp og hvem der ikke har.
jaja, så venter jeg........ men jeg har ikke fået noget som jeg kan bruge udfra dette. Så jeg mener ikke at jeg er uhøflig. Du har ikke en jordisk chance for at få point, når du ikke har kommet med et svar der har været til hjælp.......
"jaja, så venter jeg..." siger du og afviser mit svar.
Fortæl mig: Hvis jeg stiller et spørgsmål som hedder "Kan jeg lave en Java-applikation som får min skærm til at eksplodere?" så ville de fleste nok svare Nej. Men så er jeg da blevet så meget klogere og ved at jeg måske i stedet skal bruge plastisk sprængstof eller lign. Men jeg er da blevet klogere og vil til hver en tid give point til den venlige sjæl, som gav sig tid til at svare mig, selvom det var et kedeligt svar. Men sådan er folk så forskellige.
Nå, jeg har i hvert fald ikke tænkt mig at bruge mere tid her. Du har tydeligvis meget at lære om takt og tone her på eksperten.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.