29. januar 2002 - 19:27Der er
11 kommentarer og 2 løsninger
Problem med BDE og InnoInstall
Jeg er ved at skrive et program som benytter en database, og skal derfor distribuere BDE (nej jeg vil ikke skifte til ADO da jeg benytter Delphi 4, og ADO kom først med fra Delphi 5).
Jeg kan skam også sagtens distribuere det, takket være Inno Install, men har dog mødt et enkelt irriterende problem.
Under installationen skriver BDE at der ikke er nok plads på destinationsdrevet, selvom der er rigeligt med plads. Dette sker ikke på alle computere, så jeg formoder det har noget at gøre med en talgrænse (f.eks. at den går til omkring 4 GB, for derefter at gå i minus).
Jeg håber der er nogle som har stødt på dette problem før, og som kan hjælpe mig. Det er ret vigtigt, hvilket er grunden til det relativt høje antal point. Det er sikkert ikke svært, kan bare ikke lige gennemskue det lige nu.
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Det er et kendt problem også i BDE 5.2 IDAPI32.DLL bruger GetDiskFreeSpace i stedet for GetDiskFreeSpaceEx til "tælle" diskplads. Den tæller typisk forkert ved 2 og 4 GB LEDIG diskplads, dog mest 4 GB. Lad os sige du har en appl. kørende og bare virker perfekt med 4,3 GB diskplads ledig. Hvis du sletter 0,3 GB data (altså data som ikke har med din appl. at gøre) vil/kan din appl. begynde at brokke sig over manglende diskplads, selv om du intet har rørt ved applikation.
Så dit problem er at du har for meget LEDIG diskplads under install. tidspunktet.
Jeg er gået væk fra BDE så jeg ved ikke hvad en evt. løsning kunne være. Hvis du distibuere dine programmer på CD-ROM kunne du jo have en 200 MB fil liggende på og kopiere ind på HD som fil1.dat og fil2.dat alt efter behov og så slette den igen når programmet er installeret. Det er ikke kønt og formentligt også langsomt. Men jeg tror ikke du skal regne med at Borland løser problemet, efter som de er stoppet med udviklingen på BDE.
Hmm.. Ja det vil da være meget langsomt. Jeg har læst lidt på Borlands hjemmeside og set at de har et MSI Merge Module. Tror du det vil kunne bruges til noget? Og hvis ja, hvordan? :o)
Nej, det tror jeg ikke. IDAPI32.DLL bliver stadig brugt.
Important Update Notes: Due to missing exports in IDAPI32.DLL, Midas apps created with Delphi 3 will not work with BDE 5.1.1. If you are using Midas with Delphi 3, you need to use IDAPI32.DLL from BDE 5.1.0.
Jeg kan desværre dårligt huske hvad BDE/install egenligt gør, men kan du ikke skrive dit eget install. program. Rent faktisk sidder jeg lige i øjeblikket over laver et install. program til noget Lotus Notes.
Damn.. Jamen så må jeg jo skrive at problemet kan opstå, eller noget.. Ser lidt "billigt" ud, men indtil jeg kan få fat i en ADO baseret version må det jo holde..
Men så er der et par sager med ADO jeg tænker på.. Hvor nemt vil det være at skifte? Og kan ADO også læse Paradox databaser? Det sidste er specielt vigtigt da brugere jo ikke så gerne skulle miste deres database ved installation af en update.
Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Program Files\Common Files\Borland Shared\Data; Extended Properties=Paradox 4.X (hvilken version du nu bruger);
Jo det er. Der findes ikke ADO drivere til paradox. Men via ADO componenterne kan du connecte til paradox via JET.
Jeg har ikke testet, men prøv at lave en .udl fil (eks conn.udl) og dobbelt klik på den og se om du kan lave nogle tricks den vej. Jeg er ikke sikker men det er da et forsøg værd.
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.