AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TADOCOnnection wiederverbinden

TADOCOnnection wiederverbinden

Ein Thema von Moony · begonnen am 21. Apr 2006 · letzter Beitrag vom 27. Aug 2010
Antwort Antwort
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#1

TADOCOnnection wiederverbinden

  Alt 21. Apr 2006, 07:00
Datenbank: MySQL • Zugriff über: TADO
Hallo zusammen,

habe das folgende kleine/große Problem:
Die Verbindung zum MySQL-Server wird über die ODBC-Schnittstelle zum MySQL ODBC Driver hergestellt.
Es kann durchaus vorkommen, dass sich der MySQL-Server verabschiedet hat und somit kein Zugriff auf die Datenbank möglich ist. Diesen Fehler fange ich so ab:

Delphi-Quellcode:
...
try
  SQL_Funktion();
except
  Err := AdoConnection.Errors.Item[AdoConnection.Errors.Count - 1].Description;
  if Pos('MySQL server', Err) > 0 then
  begin
    AdoConnection.Close;
    try
      AdoConnection.Open;
    except
      Showmessage('Server connection failed!' + #13 + 'Application will be closed!');
      Application.Terminate;
    end;
  end;
end;
Falls ein Fehler in der SQL-Funktion auftritt, hole ich mir in der except-Routine den letzten Fehler aus der Datenbank. Falls in dieser Meldung "MySQL server" auftritt, dann versuche ich die Verbindung zu schließen und erneut aufzumachen.
Hier passiert schon der erste Fehler. Da das Netzwerkkabel ausgestöpselt ist, kann die Datenbank nicht erfolgreich verbunden werden, aber er sagt trotzdem dass die Verbindung steht (AdoConnection.Connected = true).
Der zweite Fehler der dann folgt ist, dass ich eben ein Dataset habe, welches immer wieder im Timer einen SQL Befehl ausführt. Und da die Datenbankverbindung nicht steht, kann somit das Dataset auch keine Anweisung ausführen. Was dann zwnagsläufig zu einer Endlosschleife führt.

Ich hoffe mir kann da jemand wieterhelfen.

Gruß, Moony
Scheinbar verbindet die ODBC-Schnittstelle nicht wirklich wieder die Datenbank, sondern holt die Verbindung aus dem Cache.
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.056 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: TADOCOnnection wiederverbinden

  Alt 21. Apr 2006, 08:20
Ich würde für MySQL eh nicht über ADO und ODBC gehen sondern direkt z.B. mit MyDAC. Dort bekommst Du auch bessere Fehlermeldungen da nicht noch zwei allgemeine Zwischenschichten vorhanden sind.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#3

Re: TADOCOnnection wiederverbinden

  Alt 21. Apr 2006, 09:07
Die Frage hier ist, ob ich dadurch die Verbindung wieder aufgebaut bekomme und nicht wie hier scheinbar aus dem Cache kriege?
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
chericks

Registriert seit: 12. Jun 2003
Ort: Cloppenburg
27 Beiträge
 
Delphi 7 Professional
 
#4

AW: TADOCOnnection wiederverbinden

  Alt 27. Aug 2010, 08:40
Habe auch dieses Problem, kennt hier schon jemand eine Lösung?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.056 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: TADOCOnnection wiederverbinden

  Alt 27. Aug 2010, 08:53
Eine Lösung ist nicht ADO zu verwenden.

Ansonsten unterstützt ADO einen Connection Pool. Schau mal ob du diesen u.U. leeren kannst.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
chericks

Registriert seit: 12. Jun 2003
Ort: Cloppenburg
27 Beiträge
 
Delphi 7 Professional
 
#6

AW: TADOCOnnection wiederverbinden

  Alt 27. Aug 2010, 10:52
Danke für den Anstoß!
Ich denke mit dem Eintrag "OLE DB Services=-4;" im Connectionstring der TadoConnection sollte ich das Problem bei mir nun behoben haben.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 06:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf