Einzelnen Beitrag anzeigen

Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#10

AW: Delphi 2009 - Programm hängt manchmal beim beenden

  Alt 6. Jul 2010, 17:23
Hier nochmal eine Aktualisierung des Problems auf einen sehr minimalen Quellcode. Ich habe eine Form und ein Memo darauf, samt einem Button zum Anstoßen dieses Codes. Was machst das Ding? Es stellt eine Verbindung zu einer dBase-Datenbank her, welche ja nur über den Pfadnamen angegeben ist, liest die verfügbaren Tabellen aus und gibts diese aus. Danach wird die Verbindung wieder abgebaut und gut is.

Delphi-Quellcode:
var
  conn : TADOConnection;
  list : TStringList;
begin
  conn := TADOConnection.Create(nil);
  list := TStringList.Create();
  try
    conn.ConnectionString := 'Provider=MSDASQL.1;Persist Security Info=False;Data Source=dBASE Files;Mode=Read';
    conn.DefaultDatabase := DBASE_DIRECTORY; // this constant represents a path on the hdd
    conn.Connected := True;
    conn.GetTableNames(list);
    Memo1.Text := list.Text;
  finally
    conn.Connected := False;
    FreeAndNil(conn);
    FreeAndNil(list);
  end;
end;
Die Anwendung hängt sich bei mir nur dann auf, wenn die Delphi IDE diese im Debug-Mode ausgeführt hat. Starte ich diese ganz normal über den Explorer funktioniert alles wunderbar. Die Zeile conn.Connected := True; macht das Problem, nur was genau kann ich leider nicht sagen.
Ich sollte auch noch dazu sagen, dass innerhalb der GetTableNames() -Methode ein TADODataSet erzeugt, damit gearbeitet und freigegeben wird.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)

Geändert von s.h.a.r.k ( 6. Jul 2010 um 17:42 Uhr)
  Mit Zitat antworten Zitat