Autor Beitrag
Nico B.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45

Win XP
Delphi 2006 Prof.
BeitragVerfasst: Mo 02.07.12 12:54 
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:
ausblenden volle Höhe 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:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
//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. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45

Win XP
Delphi 2006 Prof.
BeitragVerfasst: Di 03.07.12 13:35 
Hallo Leute,

hat denn keiner eine Idee?