Einzelnen Beitrag anzeigen

Nico B.

Registriert seit: 16. Okt 2006
Ort: Riesa
67 Beiträge
 
Delphi XE7 Enterprise
 
#1

Abgebrochene ADOConnection wiederherstellen

  Alt 4. Jul 2012, 08:06
Datenbank: MS Access • Version: 5? • Zugriff über: ADO
Hallo alle miteinander,

ich habe ein Problem mit einer ADOConnection und brauche eure Hilfe.

Ich habe eine Datenbankverbindung, die ab und an abbricht, weil mein Netzwerk zusammenbricht.
Nun habe ich schon verschiedene Möglichkeiten probiert, um die Verbindung nach dem Zusammenbruch wiederherzustellen.

Aktuell ist dies mein Quellcode zum Wiederaufbau der Verbindung:
Delphi-Quellcode:
//Globale Variable
var
  ADOC_CNC: TADOConnection;

//Funktion zum Test der Verbindung
function Test_CNCDB: boolean;
var
  slHilf: TStringList;
begin
  slHilf:=TStringList.Create;
  Result:=ADOC_CNC.Connected;
  try
    try
      if Result
        then
          ADOC_CNC.GetTableNames(slHilf);
    except
      Result:=false;
    end;
  finally
    slHilf.Free;
  end;
end;

//Funktion zum Herstellen der Verbindung
function Open_CNCDB: boolean;
begin
  Result:=true;
  try
    if Test_CNCDB
      then
        begin
          if Close_CNCDB
            then
              begin
                ADOC_CNC.ConnectionString:='...';
                ADOC_CNC.LoginPromt:=false;
              end
            else
              begin
                //Fehler beim Trennen der Verbindung
              end
        end
      else
        begin
          ADOC_CNC.ConnectionString:='...';
          ADOC_CNC.LoginPromt:=false;
        end;
    ADOC_CNC.Open;
  except
    Result:=false;
  end;
end;

//Funktion zum Trennen der Verbindung
function Close_CNCDB:boolean;
begin
  Result:=true;
  try
    ADOC_CNC.Close;
  except
    Result:=false;
  end;
end;

//Nun das Wiederherstellen der Verbindung im eigentlichen Programm
if not Test_CNCDB
  then
    begin
      Close_CNCDB;
      if Open_CNCDB
        then
          //Wiederaufbau der Verbindung erfolgreich
        else
          //Verbindung konnte nicht wieder hergestellt werden
    end;
Habt ihr ne Idee, warum der Wiederaufbau der Verbindung nie klappt?
Ich probiere seit Tagen an diesem Code rum und bekomme es einfach nicht hin.
Nico Bäger
  Mit Zitat antworten Zitat