Autor Beitrag
Karsten Salzmann
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Fr 05.12.08 12:58 
Hallo,
ich kämpfe nun schon seit Tagen mit einem Lost Connection Problem herrum.
Folgende Ausgangssituation:
Verbindung zur MySQL Datenbank über eine TConnection Komponente.
Primäres TADOQuery ruft die Daten mit Select .... ab.
Über einen Button wird der aktuelle Datensatz vor und zurück bewegt.
Nach der Bewegung wird in einem sekundärem TADOQuery ein Bild angezeigt das ebenfalls in der Datenbank gespeichert ist abgerufen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
begin
Q_Bilder.Close;
  Q_Bilder.Parameters.ParamByName('Id').Value := Q_BearbeitenId.Value;
  try
   Q_Bilder.Open;
  except
    ShowMessage('Das Laden eines Bildes ist schiefgegangen !');
  end;
end;


Soweit so gut !? Das funktioniert. Wenn der Benutzer aber nach einer Pause von 5 min den Datensatz weiterbewegt erscheint die Fehlermeldung beim Öffnen des Query:
[MySQL][ODBC 3.51 Driver][mysqld-5.018]Lost connection to MySQL server during query

Was mich zur Verzweiflung bringt ist die Tatsache das der Fehler nur auftritt wenn ich die Datenbank auf einem V-Server bei Strato benutze. Verwende ich die lokale MySQL Datenbank tritt der Fehler nicht auf.

Wenn es weiterhilft:
Rufe ich die Prozedur nach dem "ShowMessage" erneut auf und in der ODBC Datenquelle steht "Enabled auto reconnect" dann funktioniert auch das Q_Bilder.Open. Der MySQLAdministrator zeigt aber einen weiteren Benutzer in der Liste der aktiven Verbindungen. Diese Benutzer werden auch weiterhin angezeigt wenn das Programm beendet wird. Läuft das Programm ohne eine Fehlermeldung durch wird auch der Benutzer aus der Liste der aktiven Verbindungen gelöscht. Was mich wundert ist, der Benutzer wird erst nach dem Beenden des Programms entfent und nicht nach dem TADOConnection.Connected auf false gesetzt wird. Trat allerding die Fehlermeldung auf, dann werden beide Benutzer auch nach der Beendigung des Programms nicht aus der Liste entfernt.

Und jetzt die Frage:
Liegt es am Programm / TADOConnection oder gibt es einen "Schalter" an der Datenbank an dem ich drehen muß. Wenn ja kann ich den Fehler dann auf meinen localhost reproduzieren.
Wäre schön wenn mir jemand weiterhelfen kann da ich mir sonst bald einen Strick und einen Haken programmieren werde :-)