AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TAdoConnection disconnecten
Thema durchsuchen
Ansicht
Themen-Optionen

TAdoConnection disconnecten

Offene Frage von "Ducksoul"
Ein Thema von Ducksoul · begonnen am 19. Mär 2010 · letzter Beitrag vom 25. Mär 2010
Antwort Antwort
Ducksoul

Registriert seit: 19. Apr 2006
Ort: Ilmenau
87 Beiträge
 
RAD-Studio 2009 Pro
 
#1

TAdoConnection disconnecten

  Alt 19. Mär 2010, 12:42
Datenbank: Access • Version: xy • Zugriff über: ADO
Hallo,

ich erstelle eine temporäre Datenbank, welche ich am Funktionsende wieder löschen möchte. Dazu darf sie vom Programm allerdings nicht mehr benutzt werden.

Meine Disconnect Funktion sieht wie folgt aus:

Delphi-Quellcode:
procedure Tdbu.dbDisconnect;
begin
    // falls connected, dann Verbindung abbrechen und Objekte freigeben
  if connected then
    try
      dbcon.Connected := false;
      connected := false;
    finally
      if not connected then
      begin
        FreeAndNil(dbcon);
        FreeAndNil(dbcomm);
        FreeAndNil(dbquery);
      end;
    end;
end;

Rufe ich danach den Löschbefehl auf, so meldet Windows dass die Datei nicht gelöscht werden kann, da sie noch in Benutzung ist. Warum? Es greifen keine anderen Komponenten auf die DB zu.


Gruß
Franz
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#2

Re: TAdoConnection disconnecten

  Alt 19. Mär 2010, 13:22
Versuche mal herauszufinden, welche Anwendung noch auf die DB-Datei zugreift. Dies geht entweder per ProcessExplorer oder mit Hilfe von jedem anderen IsUsedBy-Tool. Eventuell könnte es sein, dass die Datei gerade noch von anderen Anwendungen gebucht wird.

Zu den Queries: Du hast doch ein eigenes Objekt. Lass doch deine Queries sich dort registrieren (wie du das auch immer machst) und dann kannst du die einzelnen Queries durchgehen und bei Active den Schalter auf FALSE stellen.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Ducksoul

Registriert seit: 19. Apr 2006
Ort: Ilmenau
87 Beiträge
 
RAD-Studio 2009 Pro
 
#3

Re: TAdoConnection disconnecten

  Alt 24. Mär 2010, 13:43
Hallo,

auf die Datenbank greift lediglich mein Programm zu. Sobald dieses geschlossen wird lässt sich die Datei dann auch wieder löschen.
Kann es irgendwie sein, dass der ODBC-Treiber trotz Connection.Close weiter eine Verbindung aufrecht erhält und gibt es eine Möglichkeit alle Verbindungen zu cutten?

Gruß
Franz
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: TAdoConnection disconnecten

  Alt 24. Mär 2010, 14:58
Zitat von Ducksoul:
... dass der ODBC-Treiber ...
Wieso ODBC?

Hast du einen Virenscanner aktiv? Evtl. blockt dieser die Datei noch ein paar 10tel Sekunden.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Ducksoul

Registriert seit: 19. Apr 2006
Ort: Ilmenau
87 Beiträge
 
RAD-Studio 2009 Pro
 
#5

Re: TAdoConnection disconnecten

  Alt 25. Mär 2010, 09:45
Guten Morgen,

mir ist beim Posten gestern ein kleiner Fehler unterlaufen: Ich meinte OLEDB

Aber nein, einen Virenscanner habe ich momentan nicht am Laufen :-/ Die Entwicklungsumgebung läuft in einer virtuellen Win7-Maschine. Außer Firefox, Access, Delphi läuft da eigentlich nichts weiter.

Gruß
Franz
  Mit Zitat antworten Zitat
Benutzerbild von Sybok Factor
Sybok Factor

Registriert seit: 15. Jan 2003
Ort: Billerbeck
39 Beiträge
 
Delphi 2010 Professional
 
#6

Re: TAdoConnection disconnecten

  Alt 25. Mär 2010, 10:45
Ich habe in Erinnerung, dass die Connection nicht sofort geschlossen wird, sondern in "Wartestellung" bleibt. Da gab es aber im Entwickler Forum mal Antworten von Andreas Kosch (bin mir nicht ganz sicher).

Wichtig ist aber, dass die Tabellen geschlossen sind bzw. nicht ein ADODataSet.Open nach dem Disconnect statt findet. Zu deinem Try: An sich solltest du die Verbindung einfach nur mit ADOConnection.Close geschlossen bekommen...

Viele Grüße
Sybok
Jetzte michse verstehen dein Problem!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz