Autor Beitrag
SmileySN
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 297

WinXP, Win7
Delphi 2010 Professional
BeitragVerfasst: So 05.11.06 13:11 
Um meine Access-Datenbank zu komprimieren muss ich diese natürlich erst schließen, damit ich exclusiv darauf zugreifen kann.
Trotz schließen aller Tabellen und schließen der ADOConnection geht sie nicht ganz zu.
Man sieht es schon an der .ldb Datei die immer noch neben der .mdb Datei vorhanden ist.

In einem anderen kleineren Programm von mir funktioniert das ohne Probleme, aber in dem Programm das ich derzeit bearbeite will das einfac nicht so funktionieren.

Hat noch jemand eine Idee, was ich übersehen habe ?

Hier der Code zum schließen der DB.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
//******************************************************************************
//********************** DB komprimieren ***************************************
//******************************************************************************
Procedure TForm1.Datenbankkomprimieren1Click(Sender: TObject);
Var
  ProgPath, DBName: String;

Begin
  DM1.QStamm.Close;
  DM1.QHersteller.Close;
  DM1.QAufmachung.Close;
  DM1.QMaterial.Close;
  DM1.QFarbe.Close;
  DM1.QGeraet.Close;
  DM1.QWork.Close;
  DM1.QSuchen.Close;
  DM1.QVorgaben.close;

  DM1.ADOC.Connected:=False;

  ProgPath := ExtractFilePath(paramstr(0));
  DBName := ProgPath + 'Daten\EcoPrl.mdb';

  Access_Compact(DBName);
  Showmessage('Bitte starten Sie das Programm neu');
  Halt;
End;


Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt
MisterBum83
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 245
Erhaltene Danke: 2

WIN XP
Delphi 6
BeitragVerfasst: So 05.11.06 14:00 
user profile iconSmileySN hat folgendes geschrieben:

ausblenden Delphi-Quelltext
1:
  DM1.ADOC.Connected:=False;					


Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt


Versuch mal anstelle von dem da oben:

ausblenden Delphi-Quelltext
1:
ADOConnection1.Close;					
SmileySN Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 297

WinXP, Win7
Delphi 2010 Professional
BeitragVerfasst: So 05.11.06 14:20 
Danke für den Tip, das habe ich auch schon probiert.
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 05.11.06 14:25 
hallo smileySN,

schon mal mit DM1.free; resp.  DM1.ADOC.free; probiert? da dürfte dann nichts mehr da sein was sperren könnt.

BTW: könntest auch kompremieren bevor du deine tabellen und deine tabellen öffnest.

HTH
SmileySN Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 297

WinXP, Win7
Delphi 2010 Professional
BeitragVerfasst: So 05.11.06 14:30 
Jetzt habe ich den Fehler gefunden.
In einer der Queries war im Objektinspector die Eigenschaft Connection nicht auf ADOC gesetzt.
Es wurde nur der ConnectionString zusammengesetzt und übergeben.
Dadurch hat er zwei verschiedene Connections aufgemacht.