AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL connection Fehler abfangen
Thema durchsuchen
Ansicht
Themen-Optionen

SQL connection Fehler abfangen

Ein Thema von Pet04 · begonnen am 7. Jun 2018 · letzter Beitrag vom 14. Jun 2018
Antwort Antwort
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.375 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: SQL connection Fehler abfangen

  Alt 7. Jun 2018, 08:20
Mit "IF not" ändert sich auch nichts.
Das war generell gemeint und nicht auf das aktuelle Problem bezogen. Ein Vergleich auf True oder False kann in seltenen Fällen zu unerwarteten Fehlern führen.

Zum Thema:
Wenn die Connection fehlgeschlagen ist, also Connected auf False steht, solltest du kein Close der Connection mehr machen. Eventuell (kann ich hier nicht testen) führt das zu einer weiteren Exception. Dadurch würde der Rest im Finally-Block nicht mehr ausgeführt. Warum es dann beim Debuggen trotzdem durchlaufen wird, kann ich dir so nicht sagen.
Peter
  Mit Zitat antworten Zitat
Pet04

Registriert seit: 26. Sep 2007
87 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: SQL connection Fehler abfangen

  Alt 7. Jun 2018, 09:49
Leider hat das mit der "ADOC_ChristDB.close;" auch nichts gebracht.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
989 Beiträge
 
Delphi 6 Professional
 
#3

AW: SQL connection Fehler abfangen

  Alt 7. Jun 2018, 10:04
Hmm..

Hast Du dass mal mit einer Fehlerausgabe getest?
Nach folgendem Schema?

Delphi-Quellcode:
  ADOC_ChristDB.CLose;
  ADOC_ChristDB.ConnectionString := SQL_Server;
  try
    ADOC_ChristDB.Open;
  except
    // OLE-Exception von MS/ADO
    on e: EOLEException do begin
      // Zum Testen!!
      ShowMessage('[' + E.ClassName + '] ' + IntToHEX(E.ErrorCode,8) + ' ' + E.Source + #13#10 + E.Message);
      // Hier könnte auf den spezifischen ErrorCode von Microsoft reagiert werden!!!

      //OpenSQLServerForm := TOpenSQLServerForm.Create(Application); //
      //OpenSQLServerForm.ShowModal;
    end;
    // Andere Exception
    on e: Exception do begin
      ShowMessage(E.Message);
    end;
  end;
(Aus dem Kopf herunter getippt...)
  Mit Zitat antworten Zitat
Pet04

Registriert seit: 26. Sep 2007
87 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

AW: SQL connection Fehler abfangen

  Alt 7. Jun 2018, 13:19
Problem besteht immer noch. Auf mit OLEExeption.
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.375 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: SQL connection Fehler abfangen

  Alt 7. Jun 2018, 13:33
Ich habe den Verdacht, dass du an der falschen Stelle suchst.
Mache mal zwischen jedem schritt ein ShowMessage, damit du siehst, wie weit dein Programm kommt.
Meine Vermutung ist, dass der Fehler im TOpenSQLServerForm.Create(Application) entsteht. Aber das ist nur Spekulation.
Peter
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
989 Beiträge
 
Delphi 6 Professional
 
#6

AW: SQL connection Fehler abfangen

  Alt 7. Jun 2018, 13:58
Hmm..

Problem besteht immer noch. Auf mit OLEExeption.
Hast Du meinen Source mit dem ShowMessage verwendet (Auskommentierter Dialog)?

Wenn ja, was wird den als Fehler angezeigt?
  Mit Zitat antworten Zitat
Pet04

Registriert seit: 26. Sep 2007
87 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

AW: SQL connection Fehler abfangen

  Alt 8. Jun 2018, 08:49
es kommt die Fehlermeldung
"Cannot open database "dbname" requested by Login. The Login failed"

diese Meldung kommt wohl von open und das except wird wohl nicht mehr ausgeführt.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
989 Beiträge
 
Delphi 6 Professional
 
#8

AW: SQL connection Fehler abfangen

  Alt 8. Jun 2018, 09:32
Hmm..

es kommt die Fehlermeldung
"Cannot open database "dbname" requested by Login. The Login failed"

diese Meldung kommt wohl von open und das except wird wohl nicht mehr ausgeführt.
Dass das Open den Fehler schmeißt ist Richtig, wenn jedoch die Exeption nicht vom Ty.. except gepackt wird, dann ist hier wohl was anderes nicht OK...

Wenn Du mein Muster-Src verwendet hast, sollte zum einen im Debugger (beim Open) die Fehlermeldung kommen und anschließend von der Exception ein ShowMessage.

Bei OLE-Fehlern (und hierzu gehört dein Fehler) sollte auch der FehlerCode kommen, bei allen anderen nur der Text.

Deshalb: Welcher Text wird wann angezeigt, mit oder ohne OLE-Fehlercode?
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz