AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Was mache ich mit Exceptions der Klasse EOleException ???
Thema durchsuchen
Ansicht
Themen-Optionen

Was mache ich mit Exceptions der Klasse EOleException ???

Ein Thema von geronilsmo · begonnen am 5. Apr 2004 · letzter Beitrag vom 6. Apr 2004
Antwort Antwort
Benutzerbild von geronilsmo
geronilsmo

Registriert seit: 31. Mär 2004
Ort: Oldenburg in Holstein
7 Beiträge
 
Delphi 7 Architect
 
#1

Was mache ich mit Exceptions der Klasse EOleException ???

  Alt 5. Apr 2004, 13:05
Hallo und Hilfe!!

Woher kommen bzw. wie entstehen die Exceptions der Klasse EOleException
und wie kann ich die beim Debuglauf unterbinden/ignorieren/behandeln?

Zur konkreten Situation:
========================
Auf meiner Form1 liegt eine TADOConnection-Komponente "ADOConn",
die ueber ihre Provider-Eigenschaft "OraOLEDB.Oracle"
eine 9i-Oracle-Datenbank - Verbindung herstellt.
Funktioniert auch!

-----------------------------------------------------------------------------
Delphi-Quellcode:
    ADOConn.ConnectionString := 'Provider=OraOLEDB.Oracle;'    +
                                 'Password=tiger;'              +
                                 'Persist Security Info=False;' +
                                 'User ID=SCOTT;'               +
                                 'Data Source=TEST;' ;
    ADOConn.Open;
-----------------------------------------------------------------------------

Im sich anschliessenden ConnectComplete-Ereignis der Komponente pruefe ich
den EventStatus, ob alles Ok (= esOK) oder Fehler (= esErrorsOccured):

-----------------------------------------------------------------------------
Delphi-Quellcode:
    procedure TForm1.ADOConnConnectComplete( Connection: TADOConnection;
                                             const Error: Error;
                                             var EventStatus: TEventStatus );
    begin
        if EventStatus = esErrorsOccured then
            MessageDlg(Error.Description, mtWarning, [mbCancel],0)
        else if EventStatus = esOK then
            MessageDlg('Verbindung erfolgreich', mtInformation, [mbOK],0);
    end;
-----------------------------------------------------------------------------

In der IDE jedoch verhaelt sich der Debugger echt zum ...
Gibt der Oracle-Server einen Fehler zurueck (z.B. wg. falschem Passwort)
und der OnConnectComplete wird im Fehlerzweig korrekt und vollst. durchlaufen
(MessageDlg: 'ORA-01017: invalid username/password; logon denied'),
erhalte ich nach dem ganzen folgende Debugger-Meldung:

Zitat:
Benachrichtigung ueber Debugger-Exception

Im Projekt Projekt1.exe ist eine Exception der Klasse EOleException aufgetreten.
Meldung: 'ORA-01017: invalid username/password; logon denied'.
Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
Es wird keine Exception im aktuellen ConnectComplete ausgeloest!
Zudem hat die Errors-Collection der Connection-Komponente einen Count von 0!

Meine Frage also:
=================
Wie krieg' ich den Debugger bzw. die IDE dazu, bei EOleExceptions weiterzulaufen
bzw. wie behandle ich diese BlackBox-Exceptions korrekt?
die klage ist der gruss des kaufmanns

Freundschaft!
  Mit Zitat antworten Zitat
Benutzerbild von geronilsmo
geronilsmo

Registriert seit: 31. Mär 2004
Ort: Oldenburg in Holstein
7 Beiträge
 
Delphi 7 Architect
 
#2

Re: Was mache ich mit Exceptions der Klasse EOleException ?

  Alt 6. Apr 2004, 15:12
Hallo zusammen! Ich schon wieda

Das Frage war ja primaer, wie man die Extra-Wurst-Meldung des Debuggers unterdruecken kann.

Falls jemand die Antwort schon wusste und bloss nicht antworten wollte: Pfui!

Falls sich jemand den Kopf zermartert hat: Danke, Du kannst jetzt aufhoeren!

Ich hab' die Loesung nu gefunden:
Es ist eine Einstellungs-Option der IDE selbst.
(man muss ja nu nich alles wissen ...)


Wen's noch interessieren sollte:

Wenn man die Fehlerereignis-Behandlung selbst kontrollieren will,
aber vom uebereifrigen Debugger genervt wird
(der draengelt sich bei EOleExceptions ja immer dazwischen),
kann man eine vorhandene Liste von Exception-Typen,
die der Debugger IGNORIEREN soll (!!)
entsprechend erweitern:

Vorgehensweise (Delphi 7):

Menue "Tools"
--> Debugger-Optionen
--> Register-Tab "Sprach-Exceptions"

Dort findet sich die Liste mit Exceptions, die der Debugger ignoriert,
sowie ein Button "Hinzufuegen", ueber den sich das Eingabe-Fenster
"Sprach-Exception hinzufuegen" oeffnet.

Dort traegt man haendisch EOleException ein.

Nach OK-Click wird diese in die Liste uebernommen
und auch gleich das Haekchen gesetzt.

==> Ab jetzt haelt der Debugger bei EOleExceptions die Klappe.


Ich zumindest bin jetzt zufrieden ...
die klage ist der gruss des kaufmanns

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