Einzelnen Beitrag anzeigen

stonimahoni

Registriert seit: 12. Okt 2004
146 Beiträge
 
Delphi 7 Professional
 
#1

Nach komprimieren der DB bleibt Zugriff exclusiv gesperrt ?!

  Alt 5. Sep 2005, 12:49
Datenbank: Access • Version: 2000 • Zugriff über: ADO Komponenten
Hi Leute..


hab mal wieder ne Frage an Euch :

ich habs soweit mal geschafft, meine AccessDB bei Programmstart zu komprimieren.

Dazu benutze ich folgenden Code :

Delphi-Quellcode:
function DatabaseCompact(const sdbName: WideString) : boolean;
var JE : TJetEngine; //Jet Engine
     sdbTemp : WideString; //TEMP database
     sdbTempConn : WideString; //Connection string
const
   SProvider = 'Provider=Microsoft.Jet.OLEDB.4.0; Jet OLEDB:Database Password=xxx; Data Source=';
begin
   Result:=False;
   sdbTemp := ExtractFileDir(sdbName) +
              'TEMP' +
              ExtractFileName(sdbName);
   sdbTempConn := SProvider + sdbtemp;
   if FileExists(sdbTemp) then
   DeleteFile(sdbTemp);
   JE:= TJetEngine.Create(Application);
   try
   try
      JE.CompactDatabase(SProvider + sdbName, sdbTempConn);
      DeleteFile(sdbName);
      RenameFile(sdbTemp, sdbName);
   except
      on E:Exception do
      ShowMessage(E.Message);
   end;
   finally
      JE.FreeOnRelease;
      Result:=True;
   end;
end;

Nun habe ich aber das Problem, dass wenn ich das Prog mehrmals starten will, ich ne Fehlermeldung bekomme, von wegen DB sei noch exclusiv gesperrt.
Und das passiert nur wenn ich die DB beim Progstart komprimiere.
Kann ich irgendwie per Code übergeben, dass der Zugriff nach dem komprimieren wieder für alle freigegeben ist? Und wen nja, wo stelle ich das ein bzw. wie gebe ich das an die DB weiter ?
Sowas wie "exclusive := false;" finde ich nicht :/

Kann mir da jmd helfen ?

Vielen Dank schonmal.

MFG

Carsten
Carsten
  Mit Zitat antworten Zitat