08. februar 2006 - 17:37Der er
7 kommentarer og 1 løsning
Data fylder for meget
Jeg har en access database, hvor jeg fylder data i fra et delphi program. Der er bl.a. en del tekst felter, som kan være tomme. Når programmet er færdigt fylder db ca. 14 mb. Når jeg kompresser db, fylder den ca. 2 mb. Hvordan undgår jeg at køre kompress hver gang jeg fylder data i.
Når jeg indsætter en record i databasen, tror jeg, at tekstfelter, som jeg har defineret som f.eks. 50 karakterer, også fylder 50 karakterer fysisk, selv om jeg måske kun har fyldt 3 karakterer i. Når jeg så komprimerer, forestiller jeg mig, at de "overflødige blanke" forsvinder. Jeg kan fortælle, at jeg starter med en tom og komprimeret database, før jeg begynder at fylde data i, så det har ikke noget med at der ligger nogle slettede poster.
Jeg mener, at db altid vil afsætte plads til 50 karakterer uanset hvor mange karakterer der er i feltet også efter en komprimering. Men hvad er problemet med en db der kun fylder 2 Mb?
Den fylder 14 mb før kompress og skal oploades til et internet hotel. Det virker jo ikke særlig elegant at skulle lave en kompress, hver gang, der skal lægges data ind i filen. Men tak for dine svar.
Synes godt om
Slettet bruger
09. februar 2006 - 10:06#5
Du behøver ikke foretage komprimeringen manuelt. I Funktioner | Indstillinger sætter du flueben i 'Komprimér ved lukning'. Så komprimerer den automatisk hvergang sidste mand lukker og slukker.
Ellers kan du gå ind i din VBA kode i din Access database og skrive
SendKeys "%tdc" (enten on open eller close)
Men det kræver nok at du åbner Access, på samme måde som Schlamovitzs løsning. Ellers må der være et program eller lignende der kan udføre det for dig, Access kan compacte en database der ikke er åben, men det kræver igen at du åbner Access for at kunne gøre det.
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.